Skip to content

Commit b7a46e8

Browse files
authored
Block time correction
1 parent cb8d769 commit b7a46e8

4 files changed

Lines changed: 23 additions & 1 deletion

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,7 @@
4040
\.vs/slnx\.sqlite
4141

4242
\.vs/privix-core/v15/\.suo
43+
44+
\.vs/privix-core/v15/ipch/AutoPCH/54b8d9a1e354f82/POW\.ipch
45+
46+
\.vs/privix-core/v15/ipch/AutoPCH/6022c6eb9483ef8f/SPORK\.ipch

src/pow.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "primitives/block.h"
1515
#include "uint256.h"
1616
#include "util.h"
17+
#include "spork.h"
1718

1819
#include <math.h>
1920

@@ -40,6 +41,16 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead
4041
int64_t nTargetSpacing = 60;
4142
int64_t nTargetTimespan = 60 * 40;
4243

44+
if (IsSporkActive(SPORK_23_BLOCK_TIME_RETARGET) &&
45+
(pindexLast->nHeight <= 10580 && pindexLast->nHeight > 4000)) {
46+
nTargetSpacing = 180;
47+
nTargetTimespan = 180 * 40;
48+
}else if (IsSporkActive(SPORK_23_BLOCK_TIME_RETARGET) &&
49+
(pindexLast->nHeight > 10580)) {
50+
nTargetSpacing = 120;
51+
nTargetTimespan = 120 * 40;
52+
}
53+
4354
int64_t nActualSpacing = 0;
4455
if (pindexLast->nHeight != 0)
4556
nActualSpacing = pindexLast->GetBlockTime() - pindexLast->pprev->GetBlockTime();

src/spork.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ int64_t GetSporkValue(int nSporkID)
147147
if (nSporkID == SPORK_20_LOCK_INVALID_UTXO) r = SPORK_20_LOCK_INVALID_UTXO_DEFAULT;
148148
if (nSporkID == SPORK_21_SEGWIT_ON_COINBASE) r = SPORK_21_SEGWIT_ON_COINBASE_DEFAULT;
149149
if (nSporkID == SPORK_22_NEW_COLLATERAL) r = SPORK_22_NEW_COLLATERAL_DEFAULT;
150+
if (nSporkID == SPORK_23_BLOCK_TIME_RETARGET) r = SPORK_23_BLOCK_TIME_RETARGET_DEFAULT;
150151

151152
if (r == -1) LogPrintf("GetSpork::Unknown Spork %d\n", nSporkID);
152153
}
@@ -181,6 +182,7 @@ bool IsSporkActive(int nSporkID)
181182
if (nSporkID == SPORK_20_LOCK_INVALID_UTXO) r = SPORK_20_LOCK_INVALID_UTXO_DEFAULT;
182183
if (nSporkID == SPORK_21_SEGWIT_ON_COINBASE) r = SPORK_21_SEGWIT_ON_COINBASE_DEFAULT;
183184
if (nSporkID == SPORK_22_NEW_COLLATERAL) r = SPORK_22_NEW_COLLATERAL_DEFAULT;
185+
if (nSporkID == SPORK_23_BLOCK_TIME_RETARGET) r = SPORK_23_BLOCK_TIME_RETARGET_DEFAULT;
184186

185187
if (r == -1) LogPrintf("GetSpork::Unknown Spork %d\n", nSporkID);
186188
}
@@ -345,6 +347,7 @@ int CSporkManager::GetSporkIDByName(std::string strName)
345347
if (strName == "SPORK_20_LOCK_INVALID_UTXO") return SPORK_20_LOCK_INVALID_UTXO;
346348
if (strName == "SPORK_21_SEGWIT_ON_COINBASE") return SPORK_21_SEGWIT_ON_COINBASE;
347349
if (strName == "SPORK_22_NEW_COLLATERAL") return SPORK_22_NEW_COLLATERAL;
350+
if (strName == "SPORK_23_BLOCK_TIME_RETARGET") return SPORK_23_BLOCK_TIME_RETARGET;
348351

349352
return -1;
350353
}
@@ -370,6 +373,7 @@ std::string CSporkManager::GetSporkNameByID(int id)
370373
if (id == SPORK_20_LOCK_INVALID_UTXO) return "SPORK_20_LOCK_INVALID_UTXO";
371374
if (id == SPORK_21_SEGWIT_ON_COINBASE) return "SPORK_21_SEGWIT_ON_COINBASE";
372375
if (id == SPORK_22_NEW_COLLATERAL) return "SPORK_22_NEW_COLLATERAL";
376+
if (id == SPORK_23_BLOCK_TIME_RETARGET) return "SPORK_23_BLOCK_TIME_RETARGET";
373377

374378
return "Unknown";
375379
}

src/spork.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ using namespace boost;
2727
Sporks 11,12, and 16 to be removed with 1st zerocoin release
2828
*/
2929
#define SPORK_START 10001
30-
#define SPORK_END 10025
30+
#define SPORK_END 10026
3131

3232
#define SPORK_2_SWIFTTX 10001
3333
#define SPORK_3_SWIFTTX_BLOCK_FILTERING 10002
@@ -48,6 +48,8 @@ using namespace boost;
4848
#define SPORK_20_LOCK_INVALID_UTXO 10023
4949
#define SPORK_21_SEGWIT_ON_COINBASE 10024
5050
#define SPORK_22_NEW_COLLATERAL 10025
51+
#define SPORK_23_BLOCK_TIME_RETARGET 10026
52+
5153

5254
#define SPORK_2_SWIFTTX_DEFAULT 978307200 //2001-1-1
5355
#define SPORK_3_SWIFTTX_BLOCK_FILTERING_DEFAULT 1424217600 //2015-2-18
@@ -68,6 +70,7 @@ using namespace boost;
6870
#define SPORK_20_LOCK_INVALID_UTXO_DEFAULT 4070908800
6971
#define SPORK_21_SEGWIT_ON_COINBASE_DEFAULT 4070908800
7072
#define SPORK_22_NEW_COLLATERAL_DEFAULT 4070908800
73+
#define SPORK_23_BLOCK_TIME_RETARGET_DEFAULT 4070908800
7174

7275
class CSporkMessage;
7376
class CSporkManager;

0 commit comments

Comments
 (0)