Skip to content

Updated Checkpoints (v1.7.1.0)#7

Open
igaby wants to merge 6 commits intostarcoinproject:masterfrom
strcoin:master
Open

Updated Checkpoints (v1.7.1.0)#7
igaby wants to merge 6 commits intostarcoinproject:masterfrom
strcoin:master

Conversation

@igaby
Copy link

@igaby igaby commented Mar 29, 2018

In order to update checkpoints need modifications in 2 files :

first "checkpoints.cpp" file modifications = added 7 lines after line 43 :

namespace Checkpoints
{
typedef std::map<int, uint256> MapCheckpoints;

//
// What makes a good checkpoint block?
// + Is surrounded by blocks with reasonable timestamps
//   (no blocks before with a timestamp after, none after with
//    timestamp before)
// + Contains no strange transactions
//
static MapCheckpoints mapCheckpoints =
    boost::assign::map_list_of
    (     0, hashGenesisBlockOfficial )
    (   100, uint256("0x000006ab7ca611673c6a20fc7845b13ab770230a0879c293f55a6729cb765a44"))
    ( 10000, uint256("0x00000004d1e43697a0b91bfc088c6e6e55789ad810f025a504eb966ae0d82d65"))
    (100000, uint256("0x59fd2cf11f8e1d9b2889cb376f04509c39d5afc7df9c333ec6db0542bb39daf5"))
    (200000, uint256("0x00000007ebf95521cf2e4ee16771eda5864ae8c4cccb44fbaaab369640414ee0"))
    (300000, uint256("0x00000037cc8dde0f29bf77248e03b07efb5f3a338a4c6c3e0e03e6e3b0440958"))
    (371800, uint256("0x000000231e3abea847919c620b5693a36b6e454923b42398db927387523a08e4"))
    (425001, uint256("0x000000221a3ffe9e55e0c1e2f85d4ed1efd0b20bd1632ca3303c1fa61743dbf4"))
    (518284, uint256("0x00000000494b3d1e4789be21507c8c96051e7779a57ac643022bb81e747f1900"))
    (550012, uint256("0x000000026af2c20d51fbabfd6b4c5447a54dee492454ded221582fab10d5deba"))
    (678769, uint256("0x00000001614df14ffa006ed880ce15afaa4d0ad524ad198c8c3a391822178105"))
    (725125, uint256("0x00000003b86a32973e2cb696c7463e530fb756478e1f81dd51a88ae3140ad141"))
    (762056, uint256("0x000000023e44640b2e8f2b1fcd5a5d7e5d7572233ed4aa2b626bbfe90e3ce680"))
    (777800, uint256("0x000000018c725451da713fb990831f21ff23f830d94b44402408cbb029cea6f8"))
    (778013, uint256("0x0000003c11c66d336d9e325f3a762efaad007c2d7119270bb5c0dd604e646ace"))
    (784130, uint256("0x00000000ab1701691de7cc81f0026591a0a9a7838613a5bfb483e8a532950fcd"))
    (823502, uint256("0x0000000183cef6a92fca5e7cc9ebadbaecb134efa7a0de112a20a3e388d5963c"))
    (1285154, uint256("0x000000004ec946c701b95f09feeaea6cf08a37419129d273d80f4ae99838a7f2"))
    (1780061, uint256("0x2344af1e8dbba4950f6195d494f83ac087011979316cf4edf8e9c08dd499af63"))
    (2281896, uint256("0x8610160e29c77de2dedde1d6609d09b65283ea198b2664eb2f1416f29f674e5c"))
    (2770248, uint256("0x00000370d2318ac25440a30b307f3939c220f99d47cd4caecba4d8f050822fb3"))
    (3241509, uint256("0x000000c44e11e4e0459f261e93b6be0f22e14bbeb0340213ea8f60ad3c088d44"))
    (3711537, uint256("0x000000266ab80c140c71cb9b35329bfdc56c911535a1b798ca643e6e7809b256"))
    (3952780, uint256("0x00000f53e6dd3f02a7691908c150f0cac3172e35eb75c5997ede7c058d51de51"))
	;

static MapCheckpoints mapCheckpointsTestnet =
    boost::assign::map_list_of
    ( 0, hashGenesisBlockTestNet )
    ;

secondly "kernel.cpp" file modifications = added 7 lines after line 38 :

// Hard checkpoints of stake modifiers to ensure they are deterministic
static std::map<int, unsigned int> mapStakeModifierCheckpoints =
boost::assign::map_list_of
( 0, 0x0e00670bu )
( 100, 0xb52d1d99u )
( 10000, 0xc1c3e28fu )
(100000, 0x88a23121u )
(200000, 0xfcbb2766u )
(300000, 0x1e19374au )
(371800, 0xa200c164u )
(425001, 0x530acdccu )
(518284, 0x3dff5bd6u )
(550012, 0x83b9a085u )
(678769, 0xb598e419u )
(725125, 0xca32a70cu )
(762056, 0x71edfcfeu )
(777800, 0x927769a8u )
(778013, 0x4f3cd727u )
(784130, 0x7ed1b3afu )
(823502, 0x7749ff66u )
(1285154, 0xd4bc00e3u )
(1780061, 0xb1ce3bbcu )
(2281896, 0xb496c5f8u )
(2770248, 0x52b5037bu )
(3241509, 0x3ce3512du )
(3711537, 0x26480028u )
(3952780, 0x8218e17bu )
;

// Get the last stake modifier and its generation time from a given block
static bool GetLastStakeModifier(const CBlockIndex* pindex, uint64& nStakeModifier, int64& nModifierTime)

I have tested them : modified files and recompiled my wallet.

bee7 and others added 6 commits May 23, 2014 07:51
After the time-wrap bug hit Starcoin at block 777855 again and finally stoped the network from producing new blocks the following changes to the protocol were implemented:

1) The ActualSpacing is bound by 2 seconds and TargetTimespan, i.e. 15 minutes
2) The PoW/PoS ratio is set to 1:3 (compare to the original one 1:12) to allow more PoW blocks as anyway for the last half of year the PoS was already broken.
3) The block trust scoring algorithm changed to target 3 PoW blocks among past 12 blocks.
@igaby igaby closed this Mar 29, 2018
@igaby igaby reopened this Mar 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants