diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h index e9cf60db..76a66e31 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -8,6 +8,7 @@ #define BLOCK_MAJOR_VERSION_1 1 #define BLOCK_MAJOR_VERSION_2 2 #define BLOCK_MAJOR_VERSION_3 3 +#define BLOCK_MAJOR_VERSION_4 4 #define COIN ((uint64_t)100000000) // pow(10, 8) #define DEFAULT_FEE ((uint64_t)1000000) // pow(10, 6) diff --git a/src/cryptonote_core/cryptonote_basic.h b/src/cryptonote_core/cryptonote_basic.h index 627f87e9..dfc31c80 100644 --- a/src/cryptonote_core/cryptonote_basic.h +++ b/src/cryptonote_core/cryptonote_basic.h @@ -456,7 +456,7 @@ namespace cryptonote BEGIN_SERIALIZE() VARINT_FIELD(major_version) - if(major_version > BLOCK_MAJOR_VERSION_3) return false; + if(major_version > BLOCK_MAJOR_VERSION_4) return false; VARINT_FIELD(minor_version) if (BLOCK_MAJOR_VERSION_1 == major_version) { diff --git a/src/cryptonote_core/cryptonote_format_utils.cpp b/src/cryptonote_core/cryptonote_format_utils.cpp index b6266a90..7af1b11f 100644 --- a/src/cryptonote_core/cryptonote_format_utils.cpp +++ b/src/cryptonote_core/cryptonote_format_utils.cpp @@ -860,7 +860,7 @@ namespace cryptonote //--------------------------------------------------------------- bool check_proof_of_work_v2(const block& bl, difficulty_type current_diffic, crypto::hash& proof_of_work) { - if (BLOCK_MAJOR_VERSION_2 != bl.major_version || BLOCK_MAJOR_VERSION_3 != bl.major_version) + if (BLOCK_MAJOR_VERSION_2 != bl.major_version && BLOCK_MAJOR_VERSION_3 != bl.major_version && BLOCK_MAJOR_VERSION_4 != bl.major_version) return false; if (!get_bytecoin_block_longhash(bl, proof_of_work)) @@ -901,6 +901,7 @@ namespace cryptonote case BLOCK_MAJOR_VERSION_1: return check_proof_of_work_v1(bl, current_diffic, proof_of_work); case BLOCK_MAJOR_VERSION_2: return check_proof_of_work_v2(bl, current_diffic, proof_of_work); case BLOCK_MAJOR_VERSION_3: return check_proof_of_work_v2(bl, current_diffic, proof_of_work); + case BLOCK_MAJOR_VERSION_4: return check_proof_of_work_v2(bl, current_diffic, proof_of_work); } CHECK_AND_ASSERT_MES(false, false, "unknown block major version: " << bl.major_version << "." << bl.minor_version); diff --git a/src/main.cc b/src/main.cc index ae3d5be3..86fafb28 100644 --- a/src/main.cc +++ b/src/main.cc @@ -172,7 +172,7 @@ Handle construct_block_blob(const Arguments& args) { if (!mergeBlocks(parent_block, b, std::vector())) return except("Failed to postprocess mining block"); } - if (b.major_version == BLOCK_MAJOR_VERSION_3) { + if (b.major_version >= BLOCK_MAJOR_VERSION_3) { block parent_block; b.parent_block.nonce = nonce; if (!construct_parent_block(b, parent_block))