Activate post-quantum rules at block 6000
This commit is contained in:
parent
46486d5a7f
commit
2cf5c796dc
4 changed files with 22 additions and 7 deletions
|
|
@ -331,7 +331,7 @@ endif
|
||||||
if ENABLE_ZMQ
|
if ENABLE_ZMQ
|
||||||
vexta_qt_ldadd += $(LIBVEXTA_ZMQ) $(ZMQ_LIBS)
|
vexta_qt_ldadd += $(LIBVEXTA_ZMQ) $(ZMQ_LIBS)
|
||||||
endif
|
endif
|
||||||
vexta_qt_ldadd += $(LIBVEXTA_CLI) $(LIBVEXTA_COMMON) $(LIBVEXTA_UTIL) $(LIBVEXTA_CONSENSUS) $(LIBVEXTA_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) \
|
vexta_qt_ldadd += $(LIBVEXTA_CLI) $(LIBVEXTA_COMMON) $(LIBVEXTA_UTIL) $(LIBVEXTA_CONSENSUS) $(LIBVEXTA_PQ) $(LIBVEXTA_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) \
|
||||||
$(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \
|
$(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(LIBSECP256K1) \
|
||||||
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS)
|
$(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(SQLITE_LIBS)
|
||||||
vexta_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
vexta_qt_ldflags = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
||||||
|
|
|
||||||
|
|
@ -104,11 +104,11 @@ public:
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
|
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
|
||||||
|
|
||||||
// VEXTA quantum-resistant witness v2/v3.
|
// VEXTA quantum-resistant witness v2/v3.
|
||||||
// Integrated but intentionally not active yet.
|
// Activates at the configured min_activation_height.
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].bit = 3;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].bit = 3;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].min_activation_height = 0;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].min_activation_height = 6000;
|
||||||
|
|
||||||
// The best chain should have at least this much work.
|
// The best chain should have at least this much work.
|
||||||
consensus.nMinimumChainWork = uint256{};
|
consensus.nMinimumChainWork = uint256{};
|
||||||
|
|
@ -243,11 +243,11 @@ public:
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
|
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
|
||||||
|
|
||||||
// VEXTA quantum-resistant witness v2/v3.
|
// VEXTA quantum-resistant witness v2/v3.
|
||||||
// Integrated but intentionally not active yet.
|
// Activates at the configured min_activation_height.
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].bit = 3;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].bit = 3;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].min_activation_height = 0;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].min_activation_height = 6000;
|
||||||
|
|
||||||
// The best chain should have at least this much work.
|
// The best chain should have at least this much work.
|
||||||
consensus.nMinimumChainWork = uint256{};
|
consensus.nMinimumChainWork = uint256{};
|
||||||
|
|
@ -383,11 +383,11 @@ public:
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
|
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].min_activation_height = 0; // No activation delay
|
||||||
|
|
||||||
// VEXTA quantum-resistant witness v2/v3.
|
// VEXTA quantum-resistant witness v2/v3.
|
||||||
// Integrated but intentionally not active yet.
|
// Activates at the configured min_activation_height.
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].bit = 3;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].bit = 3;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
|
||||||
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].min_activation_height = 0;
|
consensus.vDeployments[Consensus::DEPLOYMENT_PQR].min_activation_height = 6000;
|
||||||
|
|
||||||
// message start is defined as the first 4 bytes of the sha256d of the block script
|
// message start is defined as the first 4 bytes of the sha256d of the block script
|
||||||
CHashWriter h(SER_DISK, 0);
|
CHashWriter h(SER_DISK, 0);
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,11 @@ inline bool DeploymentEnabled(const Consensus::Params& params, Consensus::Buried
|
||||||
inline bool DeploymentEnabled(const Consensus::Params& params, Consensus::DeploymentPos dep)
|
inline bool DeploymentEnabled(const Consensus::Params& params, Consensus::DeploymentPos dep)
|
||||||
{
|
{
|
||||||
assert(Consensus::ValidDeployment(dep));
|
assert(Consensus::ValidDeployment(dep));
|
||||||
|
|
||||||
|
if (dep == Consensus::DEPLOYMENT_PQR) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return params.vDeployments[dep].nStartTime != Consensus::BIP9Deployment::NEVER_ACTIVE;
|
return params.vDeployments[dep].nStartTime != Consensus::BIP9Deployment::NEVER_ACTIVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -193,6 +193,11 @@ public:
|
||||||
|
|
||||||
ThresholdState VersionBitsCache::State(const CBlockIndex* pindexPrev, const Consensus::Params& params, Consensus::DeploymentPos pos)
|
ThresholdState VersionBitsCache::State(const CBlockIndex* pindexPrev, const Consensus::Params& params, Consensus::DeploymentPos pos)
|
||||||
{
|
{
|
||||||
|
if (pos == Consensus::DEPLOYMENT_PQR) {
|
||||||
|
const int next_height = pindexPrev ? pindexPrev->nHeight + 1 : 0;
|
||||||
|
return next_height >= params.vDeployments[pos].min_activation_height ? ThresholdState::ACTIVE : ThresholdState::DEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
LOCK(m_mutex);
|
LOCK(m_mutex);
|
||||||
return VersionBitsConditionChecker(pos).GetStateFor(pindexPrev, params, m_caches[pos]);
|
return VersionBitsConditionChecker(pos).GetStateFor(pindexPrev, params, m_caches[pos]);
|
||||||
}
|
}
|
||||||
|
|
@ -204,6 +209,11 @@ BIP9Stats VersionBitsCache::Statistics(const CBlockIndex* pindexPrev, const Cons
|
||||||
|
|
||||||
int VersionBitsCache::StateSinceHeight(const CBlockIndex* pindexPrev, const Consensus::Params& params, Consensus::DeploymentPos pos)
|
int VersionBitsCache::StateSinceHeight(const CBlockIndex* pindexPrev, const Consensus::Params& params, Consensus::DeploymentPos pos)
|
||||||
{
|
{
|
||||||
|
if (pos == Consensus::DEPLOYMENT_PQR) {
|
||||||
|
const int next_height = pindexPrev ? pindexPrev->nHeight + 1 : 0;
|
||||||
|
return next_height >= params.vDeployments[pos].min_activation_height ? params.vDeployments[pos].min_activation_height : 0;
|
||||||
|
}
|
||||||
|
|
||||||
LOCK(m_mutex);
|
LOCK(m_mutex);
|
||||||
return VersionBitsConditionChecker(pos).GetStateSinceHeightFor(pindexPrev, params, m_caches[pos]);
|
return VersionBitsConditionChecker(pos).GetStateSinceHeightFor(pindexPrev, params, m_caches[pos]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue