diff --git a/src/llmq/blockprocessor.cpp b/src/llmq/blockprocessor.cpp index ec90070cb9b946..082b5fe6813cfa 100644 --- a/src/llmq/blockprocessor.cpp +++ b/src/llmq/blockprocessor.cpp @@ -131,6 +131,9 @@ bool CQuorumBlockProcessor::ProcessBlock(const CBlock& block, const CBlockIndex* return true; } + if (utils::IsBasicBLSSchemeActive(pindex)) + bls::bls_legacy_scheme.store(false); + llmq::utils::PreComputeQuorumMembers(pindex); std::multimap qcs; @@ -284,6 +287,9 @@ bool CQuorumBlockProcessor::UndoBlock(const CBlock& block, const CBlockIndex* pi { AssertLockHeld(cs_main); + if (!utils::IsBasicBLSSchemeActive(pindex->pprev)) + bls::bls_legacy_scheme.store(true); + llmq::utils::PreComputeQuorumMembers(pindex, true); std::multimap qcs; diff --git a/src/llmq/dkgsessionmgr.cpp b/src/llmq/dkgsessionmgr.cpp index fdcd854b623f71..1510b5c0fe960c 100644 --- a/src/llmq/dkgsessionmgr.cpp +++ b/src/llmq/dkgsessionmgr.cpp @@ -156,8 +156,6 @@ void CDKGSessionManager::UpdatedBlockTip(const CBlockIndex* pindexNew, bool fIni return; if (!IsQuorumDKGEnabled(spork_manager)) return; - if (utils::IsBasicBLSSchemeActive(pindexNew)) - bls::bls_legacy_scheme.store(false); for (auto& qt : dkgSessionHandlers) { qt.second.UpdatedBlockTip(pindexNew); }