diff --git a/configure.ac b/configure.ac index 88b4afe1fe43..0db473ff60a2 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ AC_PREREQ([2.69]) dnl Don't forget to push a corresponding tag when updating any of _CLIENT_VERSION_* numbers define(_CLIENT_VERSION_MAJOR, 22) define(_CLIENT_VERSION_MINOR, 1) -define(_CLIENT_VERSION_BUILD, 0) +define(_CLIENT_VERSION_BUILD, 1) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2025) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/doc/release-notes.md b/doc/release-notes.md index 8b067358b48e..b7dc1df913aa 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,6 +1,6 @@ -# Dash Core version v22.1.0 +# Dash Core version v22.1.1 -This is a new minor version release, bringing new features, and various bugfixes. +This is a new minor version release, bringing various bugfixes. This release is **optional** for all nodes, although recommended. Please report bugs using the issue tracker at GitHub: @@ -26,65 +26,18 @@ likely require a reindex. # Release Notes -Build Changes -------------- +v2 P2P Downgrade Issues +----------------------- -The macOS distribution is no longer packaged in a disk image (DMG) and -is now packaged in a ZIP archive. The macOS distribution is once again notarized. +This version addressed a problem affecting certain Dash-specific connection types, including mixing and masternode probes, when +downgrading from v2 to v1 connections. This resulted in increased connection count and load for masternodes. (dash#6574) -BIP324 / v2 P2P Protocol ------------------------- +Minor QT Coinjoin Fixes +----------------------- -Version 2 of the Dash P2P protocol / BIP324, which enables encryption of the P2P protocol, -has been enabled by default in this version. This was initially introduced in Dash Core -v22.0.0 as an experimental feature and has now been enabled by default. This change is -backward compatible, and connections to peers which do not support the v2 protocol will -revert to using the v1 protocol. +- Avoid leaking CJ related balances in discrete mode (dash#6566) -Network Changes ---------------- -System ports, or ports that are lower than 1024 are now considered to be "bad" ports. -As a result, other peers will avoid connecting to nodes that are listening on these ports. -This change is to prevent potential DDoS attacks against services running on these ports. -A number of other ports commonly used for authenticated services are also considered "bad" ports. -You can view [the list of bad ports here](https://github.com/dashpay/dash/blob/v22.1.x/doc/p2p-bad-ports.md). - -Tests ------ - -- Command line arguments `-dip8params` and `-bip147height` are removed in favor of `-testactivationheight`. (dash#6325) -- Several hard forks now activate earlier on regtest. - -## New RPCs - -- **`getislocks`** - - Retrieves the InstantSend lock data for the given transaction IDs (txids). - Returns the lock information in both a human-friendly JSON format and a binary hex-encoded zmq-compatible format. - -Updated RPCs ------------- - -- The top-level fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees` - returned by RPCs `getmempoolentry`,`getrawmempool(verbose=true)`, - `getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)` - are deprecated and will be removed in the next major version (use - `-deprecated=fees` if needed in this version). The same fee fields can be accessed - through the `fees` object in the result. WARNING: deprecated - fields `ancestorfees` and `descendantfees` are denominated in duffs, whereas all - fields in the `fees` object are denominated in DASH. -- A new `hex` field has been added to the `getbestchainlock` RPC, which returns the ChainLock information in zmq-compatible, hex-encoded binary format. -- `lockunspent` now optionally takes a third parameter, `persistent`, which - causes the lock to be written persistently to the wallet database. This - allows UTXOs to remain locked even after node restarts or crashes. - -GUI changes ------------ - -- UTXOs locked via the GUI are now stored persistently in the - wallet database and are not lost on node shutdown or crash. -- Improved GUI responsiveness for large wallets. (dash#6457) - -# v22.1.0 Change log +# v22.1.1 Change log See detailed [set of changes][set-of-changes]. @@ -92,11 +45,8 @@ See detailed [set of changes][set-of-changes]. Thanks to everyone who directly contributed to this release: -- Kittywhiskers Van Gogh -- Konstantin Akimov - PastaPastaPasta - UdjinM6 -- Vijaydasmp As well as everyone that submitted issues, reviewed pull requests and helped debug the release candidates. @@ -105,6 +55,7 @@ debug the release candidates. These releases are considered obsolete. Old release notes can be found here: +- [v22.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.1.0.md) released Feb/10/2025 - [v22.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.0.0.md) released Dec/12/2024 - [v21.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.1.md) released Oct/22/2024 - [v21.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.0.md) released Aug/8/2024 @@ -159,4 +110,4 @@ These releases are considered obsolete. Old release notes can be found here: - [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 - [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 -[set-of-changes]: https://github.com/dashpay/dash/compare/v22.0.0...dashpay:v22.1.0 +[set-of-changes]: https://github.com/dashpay/dash/compare/v22.1.0...dashpay:v22.1.1 diff --git a/doc/release-notes/dash/release-notes-22.1.0.md b/doc/release-notes/dash/release-notes-22.1.0.md new file mode 100644 index 000000000000..8b067358b48e --- /dev/null +++ b/doc/release-notes/dash/release-notes-22.1.0.md @@ -0,0 +1,162 @@ +# Dash Core version v22.1.0 + +This is a new minor version release, bringing new features, and various bugfixes. +This release is **optional** for all nodes, although recommended. + +Please report bugs using the issue tracker at GitHub: + + + + +# Upgrading and downgrading + +## How to Upgrade + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or +dashd/dash-qt (on Linux). + +## Downgrade warning + +### Downgrade to a version < v22.0.0 + +Downgrading to a version older than v22.0.0 may not be supported, and will +likely require a reindex. + +# Release Notes + +Build Changes +------------- + +The macOS distribution is no longer packaged in a disk image (DMG) and +is now packaged in a ZIP archive. The macOS distribution is once again notarized. + +BIP324 / v2 P2P Protocol +------------------------ + +Version 2 of the Dash P2P protocol / BIP324, which enables encryption of the P2P protocol, +has been enabled by default in this version. This was initially introduced in Dash Core +v22.0.0 as an experimental feature and has now been enabled by default. This change is +backward compatible, and connections to peers which do not support the v2 protocol will +revert to using the v1 protocol. + +Network Changes +--------------- +System ports, or ports that are lower than 1024 are now considered to be "bad" ports. +As a result, other peers will avoid connecting to nodes that are listening on these ports. +This change is to prevent potential DDoS attacks against services running on these ports. +A number of other ports commonly used for authenticated services are also considered "bad" ports. +You can view [the list of bad ports here](https://github.com/dashpay/dash/blob/v22.1.x/doc/p2p-bad-ports.md). + +Tests +----- + +- Command line arguments `-dip8params` and `-bip147height` are removed in favor of `-testactivationheight`. (dash#6325) +- Several hard forks now activate earlier on regtest. + +## New RPCs + +- **`getislocks`** + - Retrieves the InstantSend lock data for the given transaction IDs (txids). + Returns the lock information in both a human-friendly JSON format and a binary hex-encoded zmq-compatible format. + +Updated RPCs +------------ + +- The top-level fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees` + returned by RPCs `getmempoolentry`,`getrawmempool(verbose=true)`, + `getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)` + are deprecated and will be removed in the next major version (use + `-deprecated=fees` if needed in this version). The same fee fields can be accessed + through the `fees` object in the result. WARNING: deprecated + fields `ancestorfees` and `descendantfees` are denominated in duffs, whereas all + fields in the `fees` object are denominated in DASH. +- A new `hex` field has been added to the `getbestchainlock` RPC, which returns the ChainLock information in zmq-compatible, hex-encoded binary format. +- `lockunspent` now optionally takes a third parameter, `persistent`, which + causes the lock to be written persistently to the wallet database. This + allows UTXOs to remain locked even after node restarts or crashes. + +GUI changes +----------- + +- UTXOs locked via the GUI are now stored persistently in the + wallet database and are not lost on node shutdown or crash. +- Improved GUI responsiveness for large wallets. (dash#6457) + +# v22.1.0 Change log + +See detailed [set of changes][set-of-changes]. + +# Credits + +Thanks to everyone who directly contributed to this release: + +- Kittywhiskers Van Gogh +- Konstantin Akimov +- PastaPastaPasta +- UdjinM6 +- Vijaydasmp + +As well as everyone that submitted issues, reviewed pull requests and helped +debug the release candidates. + +# Older releases + +These releases are considered obsolete. Old release notes can be found here: + +- [v22.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-22.0.0.md) released Dec/12/2024 +- [v21.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.1.md) released Oct/22/2024 +- [v21.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.1.0.md) released Aug/8/2024 +- [v21.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.2.md) released Aug/1/2024 +- [v21.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-21.0.0.md) released Jul/25/2024 +- [v20.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.1.1.md) released April/3/2024 +- [v20.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.1.0.md) released March/5/2024 +- [v20.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.4.md) released Jan/13/2024 +- [v20.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.3.md) released December/26/2023 +- [v20.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.2.md) released December/06/2023 +- [v20.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.1.md) released November/18/2023 +- [v20.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.0.md) released November/15/2023 +- [v19.3.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.3.0.md) released July/31/2023 +- [v19.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.2.0.md) released June/19/2023 +- [v19.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.1.0.md) released May/22/2023 +- [v19.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.0.0.md) released Apr/14/2023 +- [v18.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.2.md) released Mar/21/2023 +- [v18.2.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.1.md) released Jan/17/2023 +- [v18.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.0.md) released Jan/01/2023 +- [v18.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.1.md) released January/08/2023 +- [v18.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.0.md) released October/09/2022 +- [v18.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.2.md) released October/09/2022 +- [v18.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.1.md) released August/17/2022 +- [v0.17.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.3.md) released June/07/2021 +- [v0.17.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.2.md) released May/19/2021 +- [v0.16.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.1.md) released November/17/2020 +- [v0.16.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.0.md) released November/14/2020 +- [v0.16.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.0.1.md) released September/30/2020 +- [v0.15.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15.0.0.md) released Febrary/18/2020 +- [v0.14.0.5](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.5.md) released December/08/2019 +- [v0.14.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.4.md) released November/22/2019 +- [v0.14.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.3.md) released August/15/2019 +- [v0.14.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.2.md) released July/4/2019 +- [v0.14.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.1.md) released May/31/2019 +- [v0.14.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md) released May/22/2019 +- [v0.13.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.3.md) released Apr/04/2019 +- [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019 +- [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019 +- [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.md) released Jan/14/2019 +- [v0.12.3.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.4.md) released Dec/14/2018 +- [v0.12.3.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.3.md) released Sep/19/2018 +- [v0.12.3.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.2.md) released Jul/09/2018 +- [v0.12.3.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.1.md) released Jul/03/2018 +- [v0.12.2.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.3.md) released Jan/12/2018 +- [v0.12.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.2.md) released Dec/17/2017 +- [v0.12.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.md) released Nov/08/2017 +- [v0.12.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.1.md) released Feb/06/2017 +- [v0.12.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.0.md) released Aug/15/2015 +- [v0.11.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.2.md) released Mar/04/2015 +- [v0.11.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.1.md) released Feb/10/2015 +- [v0.11.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.0.md) released Jan/15/2015 +- [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 +- [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 + +[set-of-changes]: https://github.com/dashpay/dash/compare/v22.0.0...dashpay:v22.1.0 diff --git a/src/net.cpp b/src/net.cpp index 46829633f3e3..62eaf0481500 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -2247,7 +2247,9 @@ void CConnman::DisconnectNodes() .grant = std::move(pnode->grantOutbound), .destination = pnode->m_dest, .conn_type = pnode->m_conn_type, - .use_v2transport = false}); + .use_v2transport = false, + .masternode_connection = pnode->m_masternode_connection, + .masternode_probe_connection = pnode->m_masternode_probe_connection}); LogPrint(BCLog::NET, "retrying with v1 transport protocol for peer=%d\n", pnode->GetId()); } @@ -5171,7 +5173,9 @@ void CConnman::PerformReconnections() std::move(item.grant), item.destination.empty() ? nullptr : item.destination.c_str(), item.conn_type, - item.use_v2transport); + item.use_v2transport, + item.masternode_connection ? MasternodeConn::IsConnection : MasternodeConn::IsNotConnection, + item.masternode_probe_connection ? MasternodeProbeConn::IsConnection : MasternodeProbeConn::IsNotConnection); } } diff --git a/src/net.h b/src/net.h index b945cedc6c7d..284f9579f961 100644 --- a/src/net.h +++ b/src/net.h @@ -1981,6 +1981,8 @@ friend class CNode; std::string destination; ConnectionType conn_type; bool use_v2transport; + bool masternode_connection; + bool masternode_probe_connection; }; /** diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index ca079d9e89d1..e012a855d405 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -208,6 +208,7 @@ void OverviewPage::setPrivacy(bool privacy) m_privacy = privacy; if (m_balances.balance != -1) { setBalance(m_balances); + coinJoinStatus(true); } ui->listTransactions->setVisible(!m_privacy); @@ -402,7 +403,10 @@ void OverviewPage::updateCoinJoinProgress() if(nMaxToAnonymize == 0) return; - if (nMaxToAnonymize >= clientModel->coinJoinOptions().getAmount() * COIN) { + if (m_privacy) { + strAmountAndRounds = "#### " + BitcoinUnits::name(nDisplayUnit) + " / " + tr("%n Rounds", "", 0); + ui->labelAmountRounds->setToolTip(""); + } else if (nMaxToAnonymize >= clientModel->coinJoinOptions().getAmount() * COIN) { ui->labelAmountRounds->setToolTip(tr("Found enough compatible inputs to mix %1") .arg(strCoinJoinAmount)); strCoinJoinAmount = strCoinJoinAmount.remove(strCoinJoinAmount.indexOf("."), BitcoinUnits::decimals(nDisplayUnit) + 1); @@ -660,7 +664,7 @@ void OverviewPage::coinJoinStatus(bool fForce) setWidgetsVisible(true); - ui->labelSubmittedDenom->setText(QString(walletModel->coinJoin()->getSessionDenoms().c_str())); + ui->labelSubmittedDenom->setText(m_privacy ? "####" : QString(walletModel->coinJoin()->getSessionDenoms().c_str())); } void OverviewPage::toggleCoinJoin(){