mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 11:32:46 +01:00
Compare commits
4 Commits
852584e4bf
...
48b36f9ba4
Author | SHA1 | Date | |
---|---|---|---|
|
48b36f9ba4 | ||
|
ad7a373529 | ||
|
d75ee3a9e1 | ||
|
1dd9573653 |
@ -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 )`
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <llmq/quorums.h>
|
||||
#include <llmq/instantsend.h>
|
||||
#include <llmq/signing_shares.h>
|
||||
#include <evo/cbtx.h>
|
||||
|
||||
#include <chain.h>
|
||||
#include <chainparams.h>
|
||||
@ -353,27 +354,36 @@ void CChainLocksHandler::BlockConnected(const std::shared_ptr<const CBlock>& pbl
|
||||
// We need this information later when we try to sign a new tip, so that we can determine if all included TXs are
|
||||
// safe.
|
||||
|
||||
LOCK(cs);
|
||||
{
|
||||
LOCK(cs);
|
||||
|
||||
auto it = blockTxs.find(pindex->GetBlockHash());
|
||||
if (it == blockTxs.end()) {
|
||||
// we must create this entry even if there are no lockable transactions in the block, so that TrySignChainTip
|
||||
// later knows about this block
|
||||
it = blockTxs.emplace(pindex->GetBlockHash(), std::make_shared<std::unordered_set<uint256, StaticSaltedHasher>>()).first;
|
||||
}
|
||||
auto& txids = *it->second;
|
||||
|
||||
int64_t curTime = GetTime<std::chrono::seconds>().count();
|
||||
|
||||
for (const auto& tx : pblock->vtx) {
|
||||
if (tx->IsCoinBase() || tx->vin.empty()) {
|
||||
continue;
|
||||
auto it = blockTxs.find(pindex->GetBlockHash());
|
||||
if (it == blockTxs.end()) {
|
||||
// we must create this entry even if there are no lockable transactions in the block, so that TrySignChainTip later knows about this block
|
||||
it = blockTxs
|
||||
.emplace(pindex->GetBlockHash(), std::make_shared<std::unordered_set<uint256, StaticSaltedHasher>>())
|
||||
.first;
|
||||
}
|
||||
auto& txids = *it->second;
|
||||
|
||||
txids.emplace(tx->GetHash());
|
||||
txFirstSeenTime.emplace(tx->GetHash(), curTime);
|
||||
int64_t curTime = GetTime<std::chrono::seconds>().count();
|
||||
|
||||
for (const auto& tx : pblock->vtx) {
|
||||
if (tx->IsCoinBase() || tx->vin.empty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
txids.emplace(tx->GetHash());
|
||||
txFirstSeenTime.emplace(tx->GetHash(), curTime);
|
||||
}
|
||||
}
|
||||
auto cbtx = GetCoinbaseTx(pindex);
|
||||
auto clsig_height = pindex->nHeight - cbtx->bestCLHeightDiff;
|
||||
|
||||
if (clsig_height > uint32_t(WITH_LOCK(cs, return bestChainLock.getHeight()))) {
|
||||
auto clsig = CChainLockSig(clsig_height, pindex->GetAncestor(clsig_height)->GetBlockHash(), cbtx->bestCLSignature);
|
||||
ProcessNewChainLock(-1, clsig, ::SerializeHash(clsig));
|
||||
}
|
||||
}
|
||||
|
||||
void CChainLocksHandler::BlockDisconnected(const std::shared_ptr<const CBlock>& pblock, gsl::not_null<const CBlockIndex*> pindexDisconnected)
|
||||
|
Loading…
Reference in New Issue
Block a user