mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
Compare commits
4 Commits
bf114de44c
...
4579374efd
Author | SHA1 | Date | |
---|---|---|---|
|
4579374efd | ||
|
ad7a373529 | ||
|
a04d178a31 | ||
|
d75ee3a9e1 |
@ -86,10 +86,10 @@ likely require a reindex.
|
|||||||
- **glibc Requirement**
|
- **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.
|
- 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`**
|
## New RPCs
|
||||||
- A new subcommand has been introduced, offering a structured way to perform platform-related quorum signing operations.
|
|
||||||
|
|
||||||
- **`coinjoinsalt`**
|
- **`coinjoinsalt`**
|
||||||
- Allows manipulation of a CoinJoin salt stored in a wallet.
|
- Allows manipulation of a CoinJoin salt stored in a wallet.
|
||||||
@ -153,7 +153,7 @@ likely require a reindex.
|
|||||||
## Devnet Breaking Changes
|
## Devnet Breaking Changes
|
||||||
|
|
||||||
- **Hardfork Activation 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:**
|
- **Implications:**
|
||||||
- Breaking change.
|
- Breaking change.
|
||||||
- Inability to sync on devnets created with earlier Dash Core versions and vice versa.
|
- 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
|
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
|
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.
|
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
|
### RPC changes
|
||||||
- `createwallet` has an updated argument list: `createwallet "wallet_name" ( disable_private_keys blank "passphrase" avoid_reuse descriptors load_on_startup )`
|
- `createwallet` has an updated argument list: `createwallet "wallet_name" ( disable_private_keys blank "passphrase" avoid_reuse descriptors load_on_startup )`
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
#include <bls/bls.h>
|
#include <bls/bls.h>
|
||||||
#include <bls/bls_ies.h>
|
#include <bls/bls_ies.h>
|
||||||
#include <bls/bls_worker.h>
|
#include <bls/bls_worker.h>
|
||||||
|
#include <saltedhasher.h>
|
||||||
#include <sync.h>
|
#include <sync.h>
|
||||||
#include <util/underlying.h>
|
#include <util/underlying.h>
|
||||||
#include <saltedhasher.h>
|
|
||||||
|
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
|
@ -653,8 +653,9 @@ uint256 DeterministicOutboundConnection(const uint256& proTxHash1, const uint256
|
|||||||
return proTxHash2;
|
return proTxHash2;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumConnections(const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman, const CSporkManager& sporkman,
|
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumConnections(
|
||||||
gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, const uint256& forMember, bool onlyOutbound)
|
const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman, const CSporkManager& sporkman,
|
||||||
|
gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, const uint256& forMember, bool onlyOutbound)
|
||||||
{
|
{
|
||||||
if (IsAllMembersConnectedEnabled(llmqParams.type, sporkman)) {
|
if (IsAllMembersConnectedEnabled(llmqParams.type, sporkman)) {
|
||||||
auto mns = GetAllQuorumMembers(llmqParams.type, dmnman, pQuorumBaseBlockIndex);
|
auto mns = GetAllQuorumMembers(llmqParams.type, dmnman, pQuorumBaseBlockIndex);
|
||||||
@ -677,8 +678,10 @@ std::unordered_set<uint256, StaticSaltedHasher> GetQuorumConnections(const Conse
|
|||||||
return GetQuorumRelayMembers(llmqParams, dmnman, pQuorumBaseBlockIndex, forMember, onlyOutbound);
|
return GetQuorumRelayMembers(llmqParams, dmnman, pQuorumBaseBlockIndex, forMember, onlyOutbound);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumRelayMembers(const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman, gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex,
|
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumRelayMembers(const Consensus::LLMQParams& llmqParams,
|
||||||
const uint256& forMember, bool onlyOutbound)
|
CDeterministicMNManager& dmnman,
|
||||||
|
gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex,
|
||||||
|
const uint256& forMember, bool onlyOutbound)
|
||||||
{
|
{
|
||||||
auto mns = GetAllQuorumMembers(llmqParams.type, dmnman, pQuorumBaseBlockIndex);
|
auto mns = GetAllQuorumMembers(llmqParams.type, dmnman, pQuorumBaseBlockIndex);
|
||||||
std::unordered_set<uint256, StaticSaltedHasher> result;
|
std::unordered_set<uint256, StaticSaltedHasher> result;
|
||||||
|
@ -5,16 +5,16 @@
|
|||||||
#ifndef BITCOIN_LLMQ_UTILS_H
|
#ifndef BITCOIN_LLMQ_UTILS_H
|
||||||
#define BITCOIN_LLMQ_UTILS_H
|
#define BITCOIN_LLMQ_UTILS_H
|
||||||
|
|
||||||
#include <llmq/params.h>
|
|
||||||
#include <sync.h>
|
|
||||||
#include <gsl/pointers.h>
|
#include <gsl/pointers.h>
|
||||||
#include <uint256.h>
|
#include <llmq/params.h>
|
||||||
#include <saltedhasher.h>
|
#include <saltedhasher.h>
|
||||||
|
#include <sync.h>
|
||||||
|
#include <uint256.h>
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <vector>
|
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
class CConnman;
|
class CConnman;
|
||||||
class CBlockIndex;
|
class CBlockIndex;
|
||||||
@ -36,8 +36,13 @@ namespace utils
|
|||||||
std::vector<CDeterministicMNCPtr> GetAllQuorumMembers(Consensus::LLMQType llmqType, CDeterministicMNManager& dmnman, gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, bool reset_cache = false);
|
std::vector<CDeterministicMNCPtr> GetAllQuorumMembers(Consensus::LLMQType llmqType, CDeterministicMNManager& dmnman, gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, bool reset_cache = false);
|
||||||
|
|
||||||
uint256 DeterministicOutboundConnection(const uint256& proTxHash1, const uint256& proTxHash2);
|
uint256 DeterministicOutboundConnection(const uint256& proTxHash1, const uint256& proTxHash2);
|
||||||
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumConnections(const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman, const CSporkManager& sporkman, gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, const uint256& forMember, bool onlyOutbound);
|
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumConnections(
|
||||||
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumRelayMembers(const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman, gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, const uint256& forMember, bool onlyOutbound);
|
const Consensus::LLMQParams& llmqParams, CDeterministicMNManager& dmnman, const CSporkManager& sporkman,
|
||||||
|
gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, const uint256& forMember, bool onlyOutbound);
|
||||||
|
std::unordered_set<uint256, StaticSaltedHasher> GetQuorumRelayMembers(const Consensus::LLMQParams& llmqParams,
|
||||||
|
CDeterministicMNManager& dmnman,
|
||||||
|
gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex,
|
||||||
|
const uint256& forMember, bool onlyOutbound);
|
||||||
std::set<size_t> CalcDeterministicWatchConnections(Consensus::LLMQType llmqType, gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, size_t memberCount, size_t connectionCount);
|
std::set<size_t> CalcDeterministicWatchConnections(Consensus::LLMQType llmqType, gsl::not_null<const CBlockIndex*> pQuorumBaseBlockIndex, size_t memberCount, size_t connectionCount);
|
||||||
|
|
||||||
bool EnsureQuorumConnections(const Consensus::LLMQParams& llmqParams, CConnman& connman, CDeterministicMNManager& dmnman, const CSporkManager& sporkman,
|
bool EnsureQuorumConnections(const Consensus::LLMQParams& llmqParams, CConnman& connman, CDeterministicMNManager& dmnman, const CSporkManager& sporkman,
|
||||||
|
Loading…
Reference in New Issue
Block a user