@ -72,7 +72,7 @@ namespace cryptonote
{
}
//---------------------------------------------------------------------------
bool checkpoints : : add_checkpoint ( uint64_t height , const std : : string & hash_str )
bool checkpoints : : add_checkpoint ( uint64_t height , const std : : string & hash_str , const std : : string & difficulty_str )
{
crypto : : hash h = crypto : : null_hash ;
bool r = epee : : string_tools : : hex_to_pod ( hash_str , h ) ;
@ -84,6 +84,23 @@ namespace cryptonote
CHECK_AND_ASSERT_MES ( h = = m_points [ height ] , false , " Checkpoint at given height already exists, and hash for new checkpoint was different! " ) ;
}
m_points [ height ] = h ;
if ( ! difficulty_str . empty ( ) )
{
try
{
difficulty_type difficulty ( difficulty_str ) ;
if ( m_difficulty_points . count ( height ) )
{
CHECK_AND_ASSERT_MES ( difficulty = = m_difficulty_points [ height ] , false , " Difficulty checkpoint at given height already exists, and difficulty for new checkpoint was different! " ) ;
}
m_difficulty_points [ height ] = difficulty ;
}
catch ( . . . )
{
LOG_ERROR ( " Failed to parse difficulty checkpoint: " < < difficulty_str ) ;
return false ;
}
}
return true ;
}
//---------------------------------------------------------------------------
@ -143,6 +160,11 @@ namespace cryptonote
{
return m_points ;
}
//---------------------------------------------------------------------------
const std : : map < uint64_t , difficulty_type > & checkpoints : : get_difficulty_points ( ) const
{
return m_difficulty_points ;
}
bool checkpoints : : check_for_conflicts ( const checkpoints & other ) const
{
@ -160,58 +182,60 @@ namespace cryptonote
{
if ( nettype = = TESTNET )
{
ADD_CHECKPOINT ( 0 , " 48ca7cd3c8de5b6a4d53d2861fbdaedca141553559f9be9520068053cda8430b " ) ;
ADD_CHECKPOINT ( 1000000 , " 46b690b710a07ea051bc4a6b6842ac37be691089c0f7758cfeec4d5fc0b4a258 " ) ;
ADD_CHECKPOINT ( 1058600 , " 12904f6b4d9e60fd875674e07147d2c83d6716253f046af7b894c3e81da7e1bd " ) ;
ADD_CHECKPOINT2 ( 0 , " 48ca7cd3c8de5b6a4d53d2861fbdaedca141553559f9be9520068053cda8430b " , " 0x1 " ) ;
ADD_CHECKPOINT2 ( 1000000 , " 46b690b710a07ea051bc4a6b6842ac37be691089c0f7758cfeec4d5fc0b4a258 " , " 0x7aaad7153 " ) ;
ADD_CHECKPOINT2 ( 1058600 , " 12904f6b4d9e60fd875674e07147d2c83d6716253f046af7b894c3e81da7e1bd " , " 0x971efd119 " ) ;
ADD_CHECKPOINT2 ( 1450000 , " 87562ca6786f41556b8d5b48067303a57dc5ca77155b35199aedaeca1550f5a0 " , " 0xa639e2930e " ) ;
return true ;
}
if ( nettype = = STAGENET )
{
ADD_CHECKPOINT ( 0 , " 76ee3cc98646292206cd3e86f74d88b4dcc1d937088645e9b0cbca84b7ce74eb " ) ;
ADD_CHECKPOINT ( 10000 , " 1f8b0ce313f8b9ba9a46108bfd285c45ad7c2176871fd41c3a690d4830ce2fd5 " ) ;
ADD_CHECKPOINT2 ( 0 , " 76ee3cc98646292206cd3e86f74d88b4dcc1d937088645e9b0cbca84b7ce74eb " , " 0x1 " ) ;
ADD_CHECKPOINT2 ( 10000 , " 1f8b0ce313f8b9ba9a46108bfd285c45ad7c2176871fd41c3a690d4830ce2fd5 " , " 0x1d73ba " ) ;
ADD_CHECKPOINT2 ( 550000 , " 409f68cddd8e74b37469b41c1e61250d81c5776b42264f416d5d27c4626383ed " , " 0x5f3d4d03e " ) ;
return true ;
}
ADD_CHECKPOINT ( 1 , " 771fbcd656ec1464d3a02ead5e18644030007a0fc664c0a964d30922821a8148 " ) ;
ADD_CHECKPOINT ( 10 , " c0e3b387e47042f72d8ccdca88071ff96bff1ac7cde09ae113dbb7ad3fe92381 " ) ;
ADD_CHECKPOINT ( 100 , " ac3e11ca545e57c49fca2b4e8c48c03c23be047c43e471e1394528b1f9f80b2d " ) ;
ADD_CHECKPOINT ( 1000 , " 5acfc45acffd2b2e7345caf42fa02308c5793f15ec33946e969e829f40b03876 " ) ;
ADD_CHECKPOINT ( 10000 , " c758b7c81f928be3295d45e230646de8b852ec96a821eac3fea4daf3fcac0ca2 " ) ;
ADD_CHECKPOINT ( 22231 , " 7cb10e29d67e1c069e6e11b17d30b809724255fee2f6868dc14cfc6ed44dfb25 " ) ;
ADD_CHECKPOINT ( 29556 , " 53c484a8ed91e4da621bb2fa88106dbde426fe90d7ef07b9c1e5127fb6f3a7f6 " ) ;
ADD_CHECKPOINT ( 50000 , " 0fe8758ab06a8b9cb35b7328fd4f757af530a5d37759f9d3e421023231f7b31c " ) ;
ADD_CHECKPOINT ( 80000 , " a62dcd7b536f22e003ebae8726e9e7276f63d594e264b6f0cd7aab27b66e75e3 " ) ;
ADD_CHECKPOINT ( 202612 , " bbd604d2ba11ba27935e006ed39c9bfdd99b76bf4a50654bc1e1e61217962698 " ) ;
ADD_CHECKPOINT ( 202613 , " e2aa337e78df1f98f462b3b1e560c6b914dec47b610698b7b7d1e3e86b6197c2 " ) ;
ADD_CHECKPOINT ( 202614 , " c29e3dc37d8da3e72e506e31a213a58771b24450144305bcba9e70fa4d6ea6fb " ) ;
ADD_CHECKPOINT ( 205000 , " 5d3d7a26e6dc7535e34f03def711daa8c263785f73ec1fadef8a45880fde806 3" ) ;
ADD_CHECKPOINT ( 220000 , " 9613f455933c00e3e33ac315cc6b455ee8aa0c567163836858c2d9caff111553 " ) ;
ADD_CHECKPOINT ( 230300 , " bae7a80c46859db355556e3a9204a337ae8f24309926a1312323fdecf1920e61 " ) ;
ADD_CHECKPOINT ( 230700 , " 93e631240ceac831da1aebfc5dac8f722c430463024763ebafa888796ceaeedf " ) ;
ADD_CHECKPOINT ( 231350 , " b5add137199b820e1ea26640e5c3e121fd85faa86a1e39cf7e6cc097bdeb1131 " ) ;
ADD_CHECKPOINT ( 232150 , " 955de8e6b6508af2c24f7334f97beeea651d78e9ade3ab18fec3763be3201aa 8" ) ;
ADD_CHECKPOINT ( 249380 , " 654fb0a81ce3e5caf7e3264a70f447d4bd07586c08fa50f6638cc54da0a52b2 d" ) ;
ADD_CHECKPOINT ( 460000 , " 75037a7aed3e765db96c75bcf908f59d690a5f3390baebb9edeafd336a1c4831 " ) ;
ADD_CHECKPOINT ( 500000 , " 2428f0dbe49796be05ed81b347f53e1f7f44aed0abf641446ec2b94cae066b02 " ) ;
ADD_CHECKPOINT ( 600000 , " f5828ebf7d7d1cb61762c4dfe3ccf4ecab2e1aad23e8113668d981713b7a54c5 " ) ;
ADD_CHECKPOINT ( 700000 , " 12be9b3d210b93f574d2526abb9c1ab2a881b479131fd0d4f7dac93875f503cd " ) ;
ADD_CHECKPOINT ( 825000 , " 56503f9ad766774b575be3aff73245e9d159be88132c93d1754764f28da2ff60 " ) ;
ADD_CHECKPOINT ( 900000 , " d9958d0e7dcf91a5a7b11de225927bf7efc6eb26240315ce12372be902cc1337 " ) ;
ADD_CHECKPOINT ( 913193 , " 5292d5d56f6ba4de33a58d9a34d263e2cb3c6fee0aed2286fd4ac7f36d53c85f " ) ;
ADD_CHECKPOINT ( 1000000 , " a886ef5149902d8342475fee9bb296341b891ac67c4842f47a833f23c00ed721 " ) ;
ADD_CHECKPOINT ( 1100000 , " 3fd720c5c8b3072fc1ccda922dec1ef25f9ed88a1e6ad4103d0fe00b180a5903 " ) ;
ADD_CHECKPOINT ( 1150000 , " 1dd16f626d18e1e988490dfd06de5920e22629c972c58b4d8daddea0038627b2 " ) ;
ADD_CHECKPOINT ( 1200000 , " fa7d13a90850882060479d100141ff84286599ae39c3277c8ea784393f882d1f " ) ;
ADD_CHECKPOINT ( 1300000 , " 31b34272343a44a9f4ac7de7a8fcf3b7d8a3124d7d6870affd510d2f37e74cd0 " ) ;
ADD_CHECKPOINT ( 1390000 , " a8f5649dd4ded60eedab475f2bec8c934681c07e3cf640e9be0617554f13ff6c " ) ;
ADD_CHECKPOINT ( 1450000 , " ac94e8860093bc7c83e4e91215cba1d663421ecf4067a0ae609c3a8b52bcfac2 " ) ;
ADD_CHECKPOINT ( 1530000 , " 01759bce497ec38e63c78b1038892169203bb78f87e488172f6b854fcd63ba7e " ) ;
ADD_CHECKPOINT ( 1579000 , " 7d0d7a2346373afd41ed1e744a939fc5d474a7dbaa257be5c6fff4009e789241 " ) ;
ADD_CHECKPOINT ( 1668900 , " ac2dcaf3d2f58ffcf8391639f0f1ebafcb8eac43c49479c7c37f611868d07568 " ) ;
ADD_CHECKPOINT ( 1775600 , " 1c6e01c661dc22cab939e79ec6a5272190624ce8356d2f7b958e4f9a57fdb05e " ) ;
ADD_CHECKPOINT ( 1856000 , " 9b57f17f29c71a3acd8a7904b93c41fa6eb8d2b7c73936ce4f1702d14880ba29 " ) ;
ADD_CHECKPOINT ( 1958000 , " 98a5d6e51afdf3146e0eefb10a66e8648d8d4d5c2742be8835e976ba217c9bb2 " ) ;
ADD_CHECKPOINT ( 2046000 , " 5e867f0b8baefed9244a681df97fc885d8ab36c3dfcd24c7a3abf3b8ac8b8314 " ) ;
ADD_CHECKPOINT ( 2092500 , " c4e00820c9c7989b49153d5e90ae095a18a11d990e82fcc3be54e6ed785472b5 " ) ;
ADD_CHECKPOINT 2 ( 1 , " 771fbcd656ec1464d3a02ead5e18644030007a0fc664c0a964d30922821a8148 " , " 0x2 " ) ;
ADD_CHECKPOINT 2 ( 10 , " c0e3b387e47042f72d8ccdca88071ff96bff1ac7cde09ae113dbb7ad3fe92381 " , " 0x2a974 " ) ;
ADD_CHECKPOINT 2 ( 100 , " ac3e11ca545e57c49fca2b4e8c48c03c23be047c43e471e1394528b1f9f80b2d " , " 0x35d14b " ) ;
ADD_CHECKPOINT 2 ( 1000 , " 5acfc45acffd2b2e7345caf42fa02308c5793f15ec33946e969e829f40b03876 " , " 0x36a0373 " ) ;
ADD_CHECKPOINT 2 ( 10000 , " c758b7c81f928be3295d45e230646de8b852ec96a821eac3fea4daf3fcac0ca2 " , " 0x60a91390 " ) ;
ADD_CHECKPOINT 2 ( 22231 , " 7cb10e29d67e1c069e6e11b17d30b809724255fee2f6868dc14cfc6ed44dfb25 " , " 0x1e288793d " ) ;
ADD_CHECKPOINT 2 ( 29556 , " 53c484a8ed91e4da621bb2fa88106dbde426fe90d7ef07b9c1e5127fb6f3a7f6 " , " 0x71f64cce8 " ) ;
ADD_CHECKPOINT 2 ( 50000 , " 0fe8758ab06a8b9cb35b7328fd4f757af530a5d37759f9d3e421023231f7b31c " , " 0x893044b400 " ) ;
ADD_CHECKPOINT 2 ( 80000 , " a62dcd7b536f22e003ebae8726e9e7276f63d594e264b6f0cd7aab27b66e75e3 " , " 0x5cc113f1076 " ) ;
ADD_CHECKPOINT 2 ( 202612 , " bbd604d2ba11ba27935e006ed39c9bfdd99b76bf4a50654bc1e1e61217962698 " , " 0x73310a259eb2 " ) ;
ADD_CHECKPOINT 2 ( 202613 , " e2aa337e78df1f98f462b3b1e560c6b914dec47b610698b7b7d1e3e86b6197c2 " , " 0x733154039b97 " ) ;
ADD_CHECKPOINT 2 ( 202614 , " c29e3dc37d8da3e72e506e31a213a58771b24450144305bcba9e70fa4d6ea6fb " , " 0x73319dc90cb6 " ) ;
ADD_CHECKPOINT 2 ( 205000 , " 5d3d7a26e6dc7535e34f03def711daa8c263785f73ec1fadef8a45880fde806 3" , " 0x75fcc3d8512 3" ) ;
ADD_CHECKPOINT 2 ( 220000 , " 9613f455933c00e3e33ac315cc6b455ee8aa0c567163836858c2d9caff111553 " , " 0x89cfed0cae3c " ) ;
ADD_CHECKPOINT 2 ( 230300 , " bae7a80c46859db355556e3a9204a337ae8f24309926a1312323fdecf1920e61 " , " 0x967d13e5baa9 " ) ;
ADD_CHECKPOINT 2 ( 230700 , " 93e631240ceac831da1aebfc5dac8f722c430463024763ebafa888796ceaeedf " , " 0x96fb9663ebe7 " ) ;
ADD_CHECKPOINT 2 ( 231350 , " b5add137199b820e1ea26640e5c3e121fd85faa86a1e39cf7e6cc097bdeb1131 " , " 0x97b9919177bf " ) ;
ADD_CHECKPOINT 2 ( 232150 , " 955de8e6b6508af2c24f7334f97beeea651d78e9ade3ab18fec3763be3201aa 8" , " 0x98a038b612e 8" ) ;
ADD_CHECKPOINT 2 ( 249380 , " 654fb0a81ce3e5caf7e3264a70f447d4bd07586c08fa50f6638cc54da0a52b2 d" , " 0xac9739634e6 d" ) ;
ADD_CHECKPOINT 2 ( 460000 , " 75037a7aed3e765db96c75bcf908f59d690a5f3390baebb9edeafd336a1c4831 " , " 0x167799549bdda " ) ;
ADD_CHECKPOINT 2 ( 500000 , " 2428f0dbe49796be05ed81b347f53e1f7f44aed0abf641446ec2b94cae066b02 " , " 0x188ce145e4ba9 " ) ;
ADD_CHECKPOINT 2 ( 600000 , " f5828ebf7d7d1cb61762c4dfe3ccf4ecab2e1aad23e8113668d981713b7a54c5 " , " 0x1d9f3759e1554 " ) ;
ADD_CHECKPOINT 2 ( 700000 , " 12be9b3d210b93f574d2526abb9c1ab2a881b479131fd0d4f7dac93875f503cd " , " 0x2201e4ee39c2c " ) ;
ADD_CHECKPOINT 2 ( 825000 , " 56503f9ad766774b575be3aff73245e9d159be88132c93d1754764f28da2ff60 " , " 0x27565a442d5df " ) ;
ADD_CHECKPOINT 2 ( 900000 , " d9958d0e7dcf91a5a7b11de225927bf7efc6eb26240315ce12372be902cc1337 " , " 0x2a6334031546e " ) ;
ADD_CHECKPOINT 2 ( 913193 , " 5292d5d56f6ba4de33a58d9a34d263e2cb3c6fee0aed2286fd4ac7f36d53c85f " , " 0x2aefe7f40f5ea " ) ;
ADD_CHECKPOINT 2 ( 1000000 , " a886ef5149902d8342475fee9bb296341b891ac67c4842f47a833f23c00ed721 " , " 0x2edd71370f0e5 " ) ;
ADD_CHECKPOINT 2 ( 1100000 , " 3fd720c5c8b3072fc1ccda922dec1ef25f9ed88a1e6ad4103d0fe00b180a5903 " , " 0x390eb0035c53a " ) ;
ADD_CHECKPOINT 2 ( 1150000 , " 1dd16f626d18e1e988490dfd06de5920e22629c972c58b4d8daddea0038627b2 " , " 0x422d5662e9e37 " ) ;
ADD_CHECKPOINT 2 ( 1200000 , " fa7d13a90850882060479d100141ff84286599ae39c3277c8ea784393f882d1f " , " 0x4c73503fc4aa3 " ) ;
ADD_CHECKPOINT 2 ( 1300000 , " 31b34272343a44a9f4ac7de7a8fcf3b7d8a3124d7d6870affd510d2f37e74cd0 " , " 0x723f49bc249d5 " ) ;
ADD_CHECKPOINT 2 ( 1390000 , " a8f5649dd4ded60eedab475f2bec8c934681c07e3cf640e9be0617554f13ff6c " , " 0xb4bba65e2841b " ) ;
ADD_CHECKPOINT 2 ( 1450000 , " ac94e8860093bc7c83e4e91215cba1d663421ecf4067a0ae609c3a8b52bcfac2 " , " 0x11a4aabdca9511 " ) ;
ADD_CHECKPOINT 2 ( 1530000 , " 01759bce497ec38e63c78b1038892169203bb78f87e488172f6b854fcd63ba7e " , " 0x2819ce9f9e91e5 " ) ;
ADD_CHECKPOINT 2 ( 1579000 , " 7d0d7a2346373afd41ed1e744a939fc5d474a7dbaa257be5c6fff4009e789241 " , " 0x357a590e7dda83 " ) ;
ADD_CHECKPOINT 2 ( 1668900 , " ac2dcaf3d2f58ffcf8391639f0f1ebafcb8eac43c49479c7c37f611868d07568 " , " 0x474226e475cc3b " ) ;
ADD_CHECKPOINT 2 ( 1775600 , " 1c6e01c661dc22cab939e79ec6a5272190624ce8356d2f7b958e4f9a57fdb05e " , " 0x5e3b9d206a27c6 " ) ;
ADD_CHECKPOINT 2 ( 1856000 , " 9b57f17f29c71a3acd8a7904b93c41fa6eb8d2b7c73936ce4f1702d14880ba29 " , " 0x6bde5e1caccee1 " ) ;
ADD_CHECKPOINT 2 ( 1958000 , " 98a5d6e51afdf3146e0eefb10a66e8648d8d4d5c2742be8835e976ba217c9bb2 " , " 0x79dd46d2a0971a " ) ;
ADD_CHECKPOINT 2 ( 2046000 , " 5e867f0b8baefed9244a681df97fc885d8ab36c3dfcd24c7a3abf3b8ac8b8314 " , " 0x9cb8b6ff2978c6 " ) ;
ADD_CHECKPOINT 2 ( 2092500 , " c4e00820c9c7989b49153d5e90ae095a18a11d990e82fcc3be54e6ed785472b5 " , " 0xb4e585a31369cb " ) ;
return true ;
}