Skip to content

Commit 05041a4

Browse files
UdjinM6knst
authored andcommitted
fix: force ehf signal db update
1 parent 94d8032 commit 05041a4

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

src/evo/mnhftx.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,25 @@ void CMNHFManager::ConnectManagers(gsl::not_null<ChainstateManager*> chainman, g
375375
m_qman = qman;
376376
}
377377

378+
bool CMNHFManager::ForceSignalDBUpdate()
379+
{
380+
// force ehf signals db update
381+
auto dbTx = m_evoDb.BeginTransaction();
382+
383+
const bool last_legacy = bls::bls_legacy_scheme.load();
384+
bls::bls_legacy_scheme.store(false);
385+
GetSignalsStage(m_chainman->ActiveChainstate().m_chain.Tip());
386+
bls::bls_legacy_scheme.store(last_legacy);
387+
388+
dbTx->Commit();
389+
// flush it to disk
390+
if (!m_evoDb.CommitRootTransaction()) {
391+
LogPrintf("CMNHFManager::%s -- failed to commit to evoDB\n", __func__);
392+
return false;
393+
}
394+
return true;
395+
}
396+
378397
std::string MNHFTx::ToString() const
379398
{
380399
return strprintf("MNHFTx(versionBit=%d, quorumHash=%s, sig=%s)",

src/evo/mnhftx.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ class CMNHFManager : public AbstractEHFManager
155155
*/
156156
void DisconnectManagers() { m_chainman = nullptr; m_qman = nullptr; };
157157

158+
bool ForceSignalDBUpdate();
159+
158160
private:
159161
void AddToCache(const Signals& signals, const CBlockIndex* const pindex);
160162

src/init.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2058,6 +2058,10 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
20582058
strLoadError = _("Error upgrading evo database");
20592059
break;
20602060
}
2061+
if (!node.mnhf_manager->ForceSignalDBUpdate()) {
2062+
strLoadError = _("Error upgrading evo database for EHF");
2063+
break;
2064+
}
20612065

20622066
for (CChainState* chainstate : chainman.GetAll()) {
20632067
if (!is_coinsview_empty(chainstate)) {

0 commit comments

Comments
 (0)