Skip to content

Commit

Permalink
Merge #6578: [v22.1.x] backport: backport to and release 22.1.1
Browse files Browse the repository at this point in the history
4298d73 chore: bump to 22.1.1 (pasta)
fc65a16 chore: release notes for 22.1.1 (pasta)
38762f7 Merge #6574: fix: ReconnectionInfo should also store Dash-specific flags (pasta)
580b74c Merge #6566: fix(qt): avoid leaking balance and CJ info in GUI when in discreet mode (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  See commits; backport to and prep for release 22.1.1

  ## What was done?

  ## How Has This Been Tested?
  built locally

  ## Breaking Changes

  ## Checklist:
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    LGTM, utACK 4298d73
  kwvg:
    utACK 4298d73

Tree-SHA512: 4e07dd80cfda8c05645a2089fdffe1ddccc6179283c2b2448292fa8d8577a6db794cc46a389a401e7a8a14ac987ebea9e76330c78c7efc08cb4c4bd9a7a91cf2
  • Loading branch information
PastaPastaPasta committed Feb 14, 2025
2 parents 30b9673 + 4298d73 commit 0f62391
Show file tree
Hide file tree
Showing 6 changed files with 189 additions and 66 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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])
Expand Down
73 changes: 12 additions & 61 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
@@ -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:
Expand All @@ -26,77 +26,27 @@ 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].

# 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.
Expand All @@ -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
Expand Down Expand Up @@ -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
162 changes: 162 additions & 0 deletions doc/release-notes/dash/release-notes-22.1.0.md
Original file line number Diff line number Diff line change
@@ -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:

<https://github.com/dashpay/dash/issues>


# 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
8 changes: 6 additions & 2 deletions src/net.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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());
}

Expand Down Expand Up @@ -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);
}
}

Expand Down
2 changes: 2 additions & 0 deletions src/net.h
Original file line number Diff line number Diff line change
Expand Up @@ -1981,6 +1981,8 @@ friend class CNode;
std::string destination;
ConnectionType conn_type;
bool use_v2transport;
bool masternode_connection;
bool masternode_probe_connection;
};

/**
Expand Down
8 changes: 6 additions & 2 deletions src/qt/overviewpage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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(){
Expand Down

0 comments on commit 0f62391

Please sign in to comment.