Skip to content

Commit

Permalink
Update min blocktime (#11)
Browse files Browse the repository at this point in the history
* feat: - update min block time
- add more block
- update block diff

* feat: increase version

* feat: update Krakoa fork date on mainnet
  • Loading branch information
PitTxid committed Mar 12, 2024
1 parent c5e85e6 commit e585a55
Show file tree
Hide file tree
Showing 7 changed files with 84 additions and 6 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 4)
define(_CLIENT_VERSION_MINOR, 2)
define(_CLIENT_VERSION_REVISION, 1)
define(_CLIENT_VERSION_REVISION, 2)
define(_CLIENT_VERSION_BUILD, 50)

define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))
Expand Down
50 changes: 50 additions & 0 deletions src/chainparams.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ class CMainParams : public CChainParams
consensus.vUpgrades[Consensus::UPGRADE_XANDAR].nProtocolVersion = 170012;
consensus.vUpgrades[Consensus::UPGRADE_LATVERIA].nActivationHeight = 3125000; // 2023, Dec 19
consensus.vUpgrades[Consensus::UPGRADE_LATVERIA].nProtocolVersion = 170012;
consensus.vUpgrades[Consensus::UPGRADE_KRAKOA].nActivationHeight = 3270500; // 2024, Mar 29
consensus.vUpgrades[Consensus::UPGRADE_KRAKOA].nProtocolVersion = 170012;

consensus.nZawyLWMA3AveragingWindow = 60;
// The best chain should have at least this much work.
Expand Down Expand Up @@ -313,6 +315,52 @@ class CMainParams : public CChainParams
txid.SetHex("f70aa056a7fc472a96605f21aa890a428ee2327a32ea0a49abab5d67575c27ca");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)0));

// 2
// s1ZGr3P3Qg6TrL2cz7dBU86HGcoAkm5qEtU
txid.SetHex("559e52339471724e2bcebe9c827bce116e07f4ae3bebe675ad2758e30cb09b15");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)1));

// s1ZqN3fVqG3FQ3juJzMJ71rZiqv764BmMrF
txid.SetHex("baa520a33d49977cae9bb35762f0238ad213ca4893ea218b55eff144b0eb3ab8");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)1));

txid.SetHex("baa520a33d49977cae9bb35762f0238ad213ca4893ea218b55eff144b0eb3ab8");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)2));

// s1MCr5wdCcaUpg12euJzgMNZR5bNZdR2Rj6
txid.SetHex("347915d48d4e30ad85605ad6a1cf9c36d5e1e8979e6ae0535c586ac704b69b32");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)0));

txid.SetHex("b6939ecf1c6510f1bcb188e1a958339a5a24b4892bd25ea058efd00f3cd13953");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)4));

// s1cE9RVwSFPUuwQzDQiUGFrSDw3Mb8MndvL
txid.SetHex("e3f45d2087a9e1f1cbc0f23cdf22e2b84501f5052130a2e189e35ba94f08c878");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)0));

// s1Mr5sYcv9D3jpJ3iFr8NwXMe52hR1dPs12
txid.SetHex("83e71a9709c27f01b7ec6a7e005a795df5fe37f9bee1bbc46c59f72e59e37538");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)1));

// s1QjM7iHe9vr1MxzhyYWdr6vK8HwwCJWx8j
txid.SetHex("ed17e27dd0daf261d02e77b6d1020291912c7de4dfa093c551e9f49fd8e49ae0");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)5));


// s1brDHZF4KSsdWCgAxrZ2mHZyU1XCtTxJ12
txid.SetHex("b6939ecf1c6510f1bcb188e1a958339a5a24b4892bd25ea058efd00f3cd13953");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)0));

// s1Vtm24xzZ64BTPH2wC4Mhe6K8nsnT7QXPG
txid.SetHex("559e52339471724e2bcebe9c827bce116e07f4ae3bebe675ad2758e30cb09b15");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)0));

txid.SetHex("a394330bff24f802251bdd68f4cd47b1f05a494c7037d9f0fb8cde535117ba63");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)0));

// s1RQcRxDdfF7GHmJR4xPZdAMs9hedRaYnXC
txid.SetHex("041931e512daf53ca0852e01baa4a3aae6d72783422adb921fb53e3ec19b395d");
vBlacklistTx.push_back(COutPoint(txid, (uint32_t)1));

nPoolMaxTransactions = 3;
strSporkKey = "045da9271f5d9df405d9e83c7c7e62e9c831cc85c51ffaa6b515c4f9c845dec4bf256460003f26ba9d394a17cb57e6759fe231eca75b801c20bccd19cbe4b7942d";
Expand Down Expand Up @@ -381,6 +429,8 @@ class CTestNetParams : public CChainParams
consensus.vUpgrades[Consensus::UPGRADE_XANDAR].nProtocolVersion = 170012;
consensus.vUpgrades[Consensus::UPGRADE_LATVERIA].nActivationHeight = 81400; // 2023, Jun 06
consensus.vUpgrades[Consensus::UPGRADE_LATVERIA].nProtocolVersion = 170012;
consensus.vUpgrades[Consensus::UPGRADE_KRAKOA].nActivationHeight = 81600; // 2023, Jun 06
consensus.vUpgrades[Consensus::UPGRADE_KRAKOA].nProtocolVersion = 170012;
consensus.nMasternodePaymentsStartBlock = 1500;
consensus.nMasternodePaymentsIncreasePeriod = 200;
consensus.nZawyLWMA3AveragingWindow = 60;
Expand Down
2 changes: 1 addition & 1 deletion src/consensus/params.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ enum UpgradeIndex {
UPGRADE_MORAG,
UPGRADE_XANDAR,
UPGRADE_LATVERIA,

UPGRADE_KRAKOA,
// NOTE: Also add new upgrades to NetworkUpgradeInfo in upgrades.cpp
MAX_NETWORK_UPGRADES
};
Expand Down
5 changes: 5 additions & 0 deletions src/consensus/upgrades.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ const struct NUInfo NetworkUpgradeInfo[Consensus::MAX_NETWORK_UPGRADES] = {
/*.nBranchId =*/0x76b809bb,
/*.strName =*/"Latveria",
/*.strInfo =*/"Locking blacklist",
},
{
/*.nBranchId =*/0x76b809bb,
/*.strName =*/"Krakoa",
/*.strInfo =*/"Decrease min blocktime to 8 seconds",
}};

const uint32_t SPROUT_BRANCH_ID = NetworkUpgradeInfo[Consensus::BASE_SPROUT].nBranchId;
Expand Down
14 changes: 11 additions & 3 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4407,9 +4407,17 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta

// check block timestamp
if (chainparams.GetConsensus().NetworkUpgradeActive(nHeight, Consensus::UPGRADE_WAKANDA)) {
if (!CheckBlockTimestamp(pindexPrev, &block)) {
return state.Invalid(error("%s: new block is too fast", __func__),
REJECT_TIME_TOO_FAST, "block-too-fast");
if (!chainparams.GetConsensus().NetworkUpgradeActive(nHeight, Consensus::UPGRADE_KRAKOA)) {
if (!CheckBlockTimestamp(pindexPrev, &block)) {
return state.Invalid(error("%s: new block is too fast", __func__),
REJECT_TIME_TOO_FAST, "block-too-fast");
}

} else {
if (!CheckBlockTimestamp2(pindexPrev, &block)) {
return state.Invalid(error("%s: new block is too fast", __func__),
REJECT_TIME_TOO_FAST, "block-too-fast");
}
}
}
return true;
Expand Down
16 changes: 15 additions & 1 deletion src/pow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,20 @@ bool CheckBlockTimestamp(const CBlockIndex* pindexLast, const CBlockHeader* pblo
return true;
}

bool CheckBlockTimestamp2(const CBlockIndex* pindexLast, const CBlockHeader* pblock)
{
const CChainParams& chainParams = Params();
// 8 seconds
if (pblock && pblock->GetBlockTime() < pindexLast->GetBlockTime() + 8) {
return false;
} else {
if (GetAdjustedTime() < pindexLast->GetBlockTime() + 8) {
return false;
}
}
return true;
}

unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader* pblock, const Consensus::Params& params)
{
unsigned int nProofOfWorkLimit = UintToArith256(params.powLimit).GetCompact();
Expand Down Expand Up @@ -85,7 +99,7 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead

// Difficulty algo
int nHeight = pindexLast->nHeight + 1;
if (nHeight < params.vUpgrades[Consensus::UPGRADE_DIFA].nActivationHeight || params.NetworkUpgradeActive(nHeight, Consensus::UPGRADE_LATVERIA)) {
if (nHeight < params.vUpgrades[Consensus::UPGRADE_DIFA].nActivationHeight || (params.NetworkUpgradeActive(nHeight, Consensus::UPGRADE_LATVERIA) && !params.NetworkUpgradeActive(nHeight, Consensus::UPGRADE_KRAKOA))) {
return DigishieldCalculateNextWorkRequired(bnAvg, pindexLast->GetMedianTimePast(), pindexFirst->GetMedianTimePast(), params);
} else {
return Lwma3CalculateNextWorkRequired(pindexLast, params);
Expand Down
1 change: 1 addition & 0 deletions src/pow.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,5 @@ arith_uint256 GetBlockProof(const CBlockIndex& block);
int64_t GetBlockProofEquivalentTime(const CBlockIndex& to, const CBlockIndex& from, const CBlockIndex& tip, const Consensus::Params&);

bool CheckBlockTimestamp(const CBlockIndex* pindexLast, const CBlockHeader* pblock);
bool CheckBlockTimestamp2(const CBlockIndex* pindexLast, const CBlockHeader* pblock);
#endif // BITCOIN_POW_H

0 comments on commit e585a55

Please sign in to comment.