mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
Compare commits
4 Commits
c13881fcbc
...
c4abdb73fc
Author | SHA1 | Date | |
---|---|---|---|
|
c4abdb73fc | ||
|
ad7a373529 | ||
|
d75ee3a9e1 | ||
|
fba3a04ac2 |
@ -86,10 +86,10 @@ likely require a reindex.
|
||||
- **glibc Requirement**
|
||||
- The minimum required glibc to run Dash Core is now **2.31**. This means that **RHEL 8** and **Ubuntu 18.04 (Bionic)** are no longer supported.
|
||||
|
||||
## New RPCs
|
||||
- **FreeBSD Improvements**
|
||||
- Fixed issues with building Dash Core on FreeBSD.
|
||||
|
||||
- **`quorum platformsign`**
|
||||
- A new subcommand has been introduced, offering a structured way to perform platform-related quorum signing operations.
|
||||
## New RPCs
|
||||
|
||||
- **`coinjoinsalt`**
|
||||
- Allows manipulation of a CoinJoin salt stored in a wallet.
|
||||
@ -153,7 +153,7 @@ likely require a reindex.
|
||||
## Devnet Breaking Changes
|
||||
|
||||
- **Hardfork Activation Changes**
|
||||
- `BRR` (`realloc`), `DIP0020`, `DIP0024`, `V19`, `V20`, and `MN_R` hardforks are now activated at **block 2** instead of block **300** on devnets.
|
||||
- `BRR` (`realloc`), `DIP0020`, `DIP0024`, `V19`, `V20`, and `MN_RR` hardforks are now activated at **block 2** instead of block **300** on devnets.
|
||||
- **Implications:**
|
||||
- Breaking change.
|
||||
- Inability to sync on devnets created with earlier Dash Core versions and vice versa.
|
||||
|
@ -235,7 +235,7 @@ Remote Procedure Calls (RPCs)
|
||||
support for coin selection and a custom fee rate. The `send` RPC is experimental
|
||||
and may change in subsequent releases. Using it is encouraged once it's no
|
||||
longer experimental: `sendmany` and `sendtoaddress` may be deprecated in a future release.
|
||||
- A new `quorum signplatform` RPC is added for Platform needs. This composite command limits Platform to only request signatures from the Platform quorum type. It is equivalent to `quorum sign <platform type>`.
|
||||
- A new `quorum platformsign` RPC is added for Platform needs. This composite command limits Platform to only request signatures from the Platform quorum type. It is equivalent to `quorum sign <platform type>`.
|
||||
|
||||
### RPC changes
|
||||
- `createwallet` has an updated argument list: `createwallet "wallet_name" ( disable_private_keys blank "passphrase" avoid_reuse descriptors load_on_startup )`
|
||||
|
@ -787,7 +787,7 @@ private:
|
||||
|
||||
/** Protects m_peer_map. This mutex must not be locked while holding a lock
|
||||
* on any of the mutexes inside a Peer object. */
|
||||
mutable Mutex m_peer_mutex;
|
||||
mutable SharedMutex m_peer_mutex;
|
||||
/**
|
||||
* Map of all Peer objects, keyed by peer id. This map is protected
|
||||
* by the m_peer_mutex. Once a shared pointer reference is
|
||||
@ -1695,7 +1695,7 @@ void PeerManagerImpl::FinalizeNode(const CNode& node) {
|
||||
|
||||
PeerRef PeerManagerImpl::GetPeerRef(NodeId id) const
|
||||
{
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
auto it = m_peer_map.find(id);
|
||||
return it != m_peer_map.end() ? it->second : nullptr;
|
||||
}
|
||||
@ -2265,7 +2265,7 @@ bool PeerManagerImpl::AlreadyHaveBlock(const uint256& block_hash)
|
||||
|
||||
void PeerManagerImpl::SendPings()
|
||||
{
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
for(auto& it : m_peer_map) it.second->m_ping_queued = true;
|
||||
}
|
||||
|
||||
@ -2275,7 +2275,7 @@ void PeerManagerImpl::AskPeersForTransaction(const uint256& txid, bool is_master
|
||||
peersToAsk.reserve(4);
|
||||
|
||||
{
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
// TODO consider prioritizing MNs again, once that flag is moved into Peer
|
||||
for (const auto& [_, peer] : m_peer_map) {
|
||||
if (peersToAsk.size() >= 4) {
|
||||
@ -2340,7 +2340,7 @@ void PeerManagerImpl::RelayInv(CInv &inv, const int minProtoVersion)
|
||||
|
||||
void PeerManagerImpl::RelayInv(CInv &inv)
|
||||
{
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
for (const auto& [_, peer] : m_peer_map) {
|
||||
if (!peer->GetInvRelay()) continue;
|
||||
PushInv(*peer, inv);
|
||||
@ -2352,7 +2352,7 @@ void PeerManagerImpl::RelayDSQ(const CCoinJoinQueue& queue)
|
||||
CInv inv{MSG_DSQ, queue.GetHash()};
|
||||
std::vector<NodeId> nodes_send_all;
|
||||
{
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
for (const auto& [nodeid, peer] : m_peer_map) {
|
||||
switch (peer->m_wants_dsq) {
|
||||
case Peer::WantsDSQ::NONE:
|
||||
@ -2428,7 +2428,7 @@ void PeerManagerImpl::RelayInvFiltered(CInv &inv, const uint256& relatedTxHash,
|
||||
void PeerManagerImpl::RelayTransaction(const uint256& txid)
|
||||
{
|
||||
const CInv inv{m_cj_ctx->dstxman->GetDSTX(txid) ? MSG_DSTX : MSG_TX, txid};
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
for(auto& it : m_peer_map) {
|
||||
Peer& peer = *it.second;
|
||||
auto tx_relay = peer.GetTxRelay();
|
||||
@ -2441,7 +2441,7 @@ void PeerManagerImpl::RelayTransaction(const uint256& txid)
|
||||
void PeerManagerImpl::RelayRecoveredSig(const uint256& sigHash)
|
||||
{
|
||||
const CInv inv{MSG_QUORUM_RECOVERED_SIG, sigHash};
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
for (const auto& [_, peer] : m_peer_map) {
|
||||
if (peer->m_wants_recsigs) {
|
||||
PushInv(*peer, inv);
|
||||
@ -2477,7 +2477,7 @@ void PeerManagerImpl::RelayAddress(NodeId originator,
|
||||
std::array<std::pair<uint64_t, Peer*>, 2> best{{{0, nullptr}, {0, nullptr}}};
|
||||
assert(nRelayNodes <= best.size());
|
||||
|
||||
LOCK(m_peer_mutex);
|
||||
READ_LOCK(m_peer_mutex);
|
||||
|
||||
for (auto& [id, peer] : m_peer_map) {
|
||||
if (peer->m_addr_relay_enabled && id != originator && IsAddrCompatible(*peer, addr)) {
|
||||
|
Loading…
Reference in New Issue
Block a user