Skip to content

Commit 135829d

Browse files
committed
Add SPORK_19_CHAINLOCKS_ENABLED
1 parent 29532ba commit 135829d

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

src/llmq/quorums_chainlocks.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "chain.h"
1111
#include "net_processing.h"
1212
#include "scheduler.h"
13+
#include "spork.h"
1314
#include "validation.h"
1415

1516
namespace llmq
@@ -56,6 +57,10 @@ bool CChainLocksHandler::GetChainLockByHash(const uint256& hash, llmq::CChainLoc
5657

5758
void CChainLocksHandler::ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStream& vRecv, CConnman& connman)
5859
{
60+
if (!sporkManager.IsSporkActive(SPORK_19_CHAINLOCKS_ENABLED)) {
61+
return;
62+
}
63+
5964
if (strCommand == NetMsgType::CLSIG) {
6065
CChainLockSig clsig;
6166
vRecv >> clsig;
@@ -171,6 +176,9 @@ void CChainLocksHandler::UpdatedBlockTip(const CBlockIndex* pindexNew, const CBl
171176
if (!pindexNew->pprev) {
172177
return;
173178
}
179+
if (!sporkManager.IsSporkActive(SPORK_19_CHAINLOCKS_ENABLED)) {
180+
return;
181+
}
174182

175183
// DIP8 defines a process called "Signing attempts" which should run before the CLSIG is finalized
176184
// To simplify the initial implementation, we skip this process and directly try to create a CLSIG
@@ -257,6 +265,10 @@ void CChainLocksHandler::EnforceBestChainLock()
257265

258266
void CChainLocksHandler::HandleNewRecoveredSig(const llmq::CRecoveredSig& recoveredSig)
259267
{
268+
if (!sporkManager.IsSporkActive(SPORK_19_CHAINLOCKS_ENABLED)) {
269+
return;
270+
}
271+
260272
CChainLockSig clsig;
261273
{
262274
LOCK(cs);
@@ -316,6 +328,10 @@ void CChainLocksHandler::DoInvalidateBlock(const CBlockIndex* pindex, bool activ
316328

317329
bool CChainLocksHandler::HasChainLock(int nHeight, const uint256& blockHash)
318330
{
331+
if (!sporkManager.IsSporkActive(SPORK_19_CHAINLOCKS_ENABLED)) {
332+
return false;
333+
}
334+
319335
LOCK(cs);
320336
return InternalHasChainLock(nHeight, blockHash);
321337
}
@@ -342,6 +358,10 @@ bool CChainLocksHandler::InternalHasChainLock(int nHeight, const uint256& blockH
342358

343359
bool CChainLocksHandler::HasConflictingChainLock(int nHeight, const uint256& blockHash)
344360
{
361+
if (!sporkManager.IsSporkActive(SPORK_19_CHAINLOCKS_ENABLED)) {
362+
return false;
363+
}
364+
345365
LOCK(cs);
346366
return InternalHasConflictingChainLock(nHeight, blockHash);
347367
}

src/spork.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ int CSporkManager::GetSporkIDByName(const std::string& strName)
287287
if (strName == "SPORK_16_INSTANTSEND_AUTOLOCKS") return SPORK_16_INSTANTSEND_AUTOLOCKS;
288288
if (strName == "SPORK_17_QUORUM_DKG_ENABLED") return SPORK_17_QUORUM_DKG_ENABLED;
289289
if (strName == "SPORK_18_QUORUM_DEBUG_ENABLED") return SPORK_18_QUORUM_DEBUG_ENABLED;
290+
if (strName == "SPORK_19_CHAINLOCKS_ENABLED") return SPORK_19_CHAINLOCKS_ENABLED;
290291

291292
LogPrint("spork", "CSporkManager::GetSporkIDByName -- Unknown Spork name '%s'\n", strName);
292293
return -1;
@@ -304,6 +305,7 @@ std::string CSporkManager::GetSporkNameByID(int nSporkID)
304305
case SPORK_16_INSTANTSEND_AUTOLOCKS: return "SPORK_16_INSTANTSEND_AUTOLOCKS";
305306
case SPORK_17_QUORUM_DKG_ENABLED: return "SPORK_17_QUORUM_DKG_ENABLED";
306307
case SPORK_18_QUORUM_DEBUG_ENABLED: return "SPORK_18_QUORUM_DEBUG_ENABLED";
308+
case SPORK_19_CHAINLOCKS_ENABLED: return "SPORK_19_CHAINLOCKS_ENABLED";
307309
default:
308310
LogPrint("spork", "CSporkManager::GetSporkNameByID -- Unknown Spork ID %d\n", nSporkID);
309311
return "Unknown";

src/spork.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ static const int SPORK_12_RECONSIDER_BLOCKS = 10011;
2626
static const int SPORK_16_INSTANTSEND_AUTOLOCKS = 10015;
2727
static const int SPORK_17_QUORUM_DKG_ENABLED = 10016;
2828
static const int SPORK_18_QUORUM_DEBUG_ENABLED = 10017;
29+
static const int SPORK_19_CHAINLOCKS_ENABLED = 10018;
2930

3031
static const int SPORK_START = SPORK_2_INSTANTSEND_ENABLED;
31-
static const int SPORK_END = SPORK_18_QUORUM_DEBUG_ENABLED;
32+
static const int SPORK_END = SPORK_19_CHAINLOCKS_ENABLED;
3233

3334
extern std::map<int, int64_t> mapSporkDefaults;
3435
extern CSporkManager sporkManager;

0 commit comments

Comments
 (0)