From a6519e168145022ebaf26a54010cd95f31c9d654 Mon Sep 17 00:00:00 2001 From: random-zebra Date: Mon, 8 Feb 2021 18:08:03 +0100 Subject: [PATCH 1/3] [Consensus] Introduce V6 hardfork params --- src/chainparams.cpp | 6 ++++++ src/consensus/params.h | 1 + src/consensus/upgrades.cpp | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 430eecb455da..78e3a83711e2 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -198,6 +198,8 @@ class CMainParams : public CChainParams consensus.vUpgrades[Consensus::UPGRADE_V3_4].nActivationHeight = 1967000; consensus.vUpgrades[Consensus::UPGRADE_V4_0].nActivationHeight = 2153200; consensus.vUpgrades[Consensus::UPGRADE_V5_0].nActivationHeight = 2700500; + consensus.vUpgrades[Consensus::UPGRADE_V6_0].nActivationHeight = + Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT; consensus.vUpgrades[Consensus::UPGRADE_ZC].hashActivationBlock = uint256S("0x5b2482eca24caf2a46bb22e0545db7b7037282733faa3a42ec20542509999a64"); @@ -329,6 +331,8 @@ class CTestNetParams : public CChainParams consensus.vUpgrades[Consensus::UPGRADE_V3_4].nActivationHeight = 201; consensus.vUpgrades[Consensus::UPGRADE_V4_0].nActivationHeight = 201; consensus.vUpgrades[Consensus::UPGRADE_V5_0].nActivationHeight = 201; + consensus.vUpgrades[Consensus::UPGRADE_V6_0].nActivationHeight = + Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT; /** * The message start string is designed to be unlikely to occur in normal data. @@ -454,6 +458,8 @@ class CRegTestParams : public CChainParams consensus.vUpgrades[Consensus::UPGRADE_V4_0].nActivationHeight = Consensus::NetworkUpgrade::ALWAYS_ACTIVE; consensus.vUpgrades[Consensus::UPGRADE_V5_0].nActivationHeight = 300; + consensus.vUpgrades[Consensus::UPGRADE_V6_0].nActivationHeight = + Consensus::NetworkUpgrade::NO_ACTIVATION_HEIGHT; /** * The message start string is designed to be unlikely to occur in normal data. diff --git a/src/consensus/params.h b/src/consensus/params.h index c5b2a76a13bd..7dfe60aaffc3 100644 --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -34,6 +34,7 @@ enum UpgradeIndex : uint32_t { UPGRADE_V3_4, UPGRADE_V4_0, UPGRADE_V5_0, + UPGRADE_V6_0, UPGRADE_TESTDUMMY, // NOTE: Also add new upgrades to NetworkUpgradeInfo in upgrades.cpp MAX_NETWORK_UPGRADES diff --git a/src/consensus/upgrades.cpp b/src/consensus/upgrades.cpp index 2de9cc45f37f..441f03f5a690 100644 --- a/src/consensus/upgrades.cpp +++ b/src/consensus/upgrades.cpp @@ -53,6 +53,10 @@ const struct NUInfo NetworkUpgradeInfo[Consensus::MAX_NETWORK_UPGRADES] = { /*.strName =*/ "v5_shield", /*.strInfo =*/ "Sapling Shield - start block v8 - start transaction v3", }, + { + /*.strName =*/ "v6_evo", + /*.strInfo =*/ "Deterministic Masternodes", + }, { /*.strName =*/ "Test_dummy", /*.strInfo =*/ "Test dummy info", From 4db411f09f3b5d764ad83938419392380859b2b3 Mon Sep 17 00:00:00 2001 From: random-zebra Date: Wed, 27 Jan 2021 14:59:33 +0100 Subject: [PATCH 2/3] [Consensus] Add SPORK_21 to disable old masternodes at specific height --- src/spork.cpp | 1 + src/sporkid.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/spork.cpp b/src/spork.cpp index 6af35327912a..0ae712b900ae 100644 --- a/src/spork.cpp +++ b/src/spork.cpp @@ -27,6 +27,7 @@ std::vector sporkDefs = { MAKE_SPORK_DEF(SPORK_18_ZEROCOIN_PUBLICSPEND_V4, 4070908800ULL), // OFF MAKE_SPORK_DEF(SPORK_19_COLDSTAKING_MAINTENANCE, 4070908800ULL), // OFF MAKE_SPORK_DEF(SPORK_20_SAPLING_MAINTENANCE, 4070908800ULL), // OFF + MAKE_SPORK_DEF(SPORK_21_LEGACY_MNS_MAX_HEIGHT, 4070908800ULL), // OFF }; CSporkManager sporkManager; diff --git a/src/sporkid.h b/src/sporkid.h index f35a2dd9aff9..a9babfb503f9 100644 --- a/src/sporkid.h +++ b/src/sporkid.h @@ -25,6 +25,7 @@ enum SporkId : int32_t { SPORK_18_ZEROCOIN_PUBLICSPEND_V4 = 10018, SPORK_19_COLDSTAKING_MAINTENANCE = 10019, SPORK_20_SAPLING_MAINTENANCE = 10020, + SPORK_21_LEGACY_MNS_MAX_HEIGHT = 10021, SPORK_INVALID = -1 }; From 92c3c8dc359ee65d9bc762b53bd8f0a666f37656 Mon Sep 17 00:00:00 2001 From: random-zebra Date: Tue, 26 Jan 2021 17:31:44 +0100 Subject: [PATCH 3/3] [Build] Use C++14 standard --- CMakeLists.txt | 8 ++++---- configure.ac | 4 ++-- src/qt/CMakeLists.txt | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 196d2bae8ac9..19e0348d5ac8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,8 +25,8 @@ project(PIVX) set(BDB_VER "4.8.30") set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/contrib/cmake") -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ") +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 ") include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") @@ -199,6 +199,7 @@ set(SERVER_SOURCES ./src/blocksignature.cpp ./src/chain.cpp ./src/checkpoints.cpp + ./src/consensus/tx_verify.cpp ./src/httprpc.cpp ./src/httpserver.cpp ./src/indirectmap.h @@ -231,9 +232,9 @@ set(SERVER_SOURCES ./src/timedata.cpp ./src/torcontrol.cpp ./src/sapling/sapling_txdb.cpp + ./src/sapling/sapling_validation.cpp ./src/txdb.cpp ./src/txmempool.cpp - ./src/sapling/sapling_validation.cpp ./src/validation.cpp ./src/validationinterface.cpp ./src/zpivchain.cpp @@ -385,7 +386,6 @@ set(COMMON_SOURCES ./src/compressor.cpp ./src/tiertwo/specialtx_validation.cpp ./src/consensus/merkle.cpp - ./src/consensus/tx_verify.cpp ./src/consensus/zerocoin_verify.cpp ./src/primitives/block.cpp ./src/primitives/transaction.cpp diff --git a/configure.ac b/configure.ac index dfa384ef7b06..3b26e39a50bf 100644 --- a/configure.ac +++ b/configure.ac @@ -59,8 +59,8 @@ case $host in lt_cv_deplibs_check_method="pass_all" ;; esac -dnl Require C++11 compiler (no GNU extensions) -AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory], [nodefault]) +dnl Require C++14 compiler (no GNU extensions) +AX_CXX_COMPILE_STDCXX([14], [noext], [mandatory], [nodefault]) dnl Check if -latomic is required for CHECK_ATOMIC diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt index 416062a696d2..56b98a8e52e9 100644 --- a/src/qt/CMakeLists.txt +++ b/src/qt/CMakeLists.txt @@ -203,7 +203,7 @@ target_include_directories(qt_stuff PUBLIC ${CMAKE_SOURCE_DIR}/src ${OPENSSL_INCLUDE_DIR} ${BerkeleyDB_INCLUDE_DIRS} ) -set_property(TARGET qt_stuff PROPERTY CXX_STANDARD 11) +set_property(TARGET qt_stuff PROPERTY CXX_STANDARD 14) file(GLOB QT_TRANSLATIONS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/locale/*.ts)