From 78cbb8bc9f8d88bfa7e60b03680cc20f228b32a8 Mon Sep 17 00:00:00 2001 From: Matt Hess Date: Wed, 12 Nov 2025 19:00:53 +0000 Subject: [PATCH] Update hardfork schedule for Salvium - Replace Monero hardfork schedule with Salvium's - v1-v10 transitions at correct block heights - Fixes peer banning due to version mismatch (error 87) --- external/src/hardforks/hardforks.cpp | 121 +++++++++++---------------- src/common.h | 2 +- src/p2p_server.cpp | 2 +- 3 files changed, 51 insertions(+), 74 deletions(-) diff --git a/external/src/hardforks/hardforks.cpp b/external/src/hardforks/hardforks.cpp index 92d987a..43bb268 100644 --- a/external/src/hardforks/hardforks.cpp +++ b/external/src/hardforks/hardforks.cpp @@ -26,10 +26,6 @@ // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#ifdef _MSC_VER -#pragma warning(disable : 4514 4820) -#endif - #include "hardforks.h" #undef MONERO_DEFAULT_LOG_CATEGORY @@ -39,94 +35,75 @@ const hardfork_t mainnet_hard_forks[] = { // version 1 from the start of the blockchain { 1, 1, 0, 1341378000 }, - // version 2 starts from block 1009827, which is on or around the 20th of March, 2016. Fork time finalised on 2015-09-20. No fork voting occurs for the v2 fork. - { 2, 1009827, 0, 1442763710 }, + // version 2 starts from block 89800, which is on or around the 4th of November, 2024. Fork time finalised on 2024-10-21. No fork voting occurs for the v2 fork. + { 2, 89800, 0, 1729518000 }, - // version 3 starts from block 1141317, which is on or around the 24th of September, 2016. Fork time finalised on 2016-03-21. - { 3, 1141317, 0, 1458558528 }, + // version 3 starts from block 121100, which is on or around the 19th of December, 2024. Fork time finalised on 2024-12-18. No fork voting occurs for the v3 fork. + { 3, 121100, 0, 1734516900 }, - // version 4 starts from block 1220516, which is on or around the 5th of January, 2017. Fork time finalised on 2016-09-18. - { 4, 1220516, 0, 1483574400 }, + // version 4 starts from block 121100, which is on or around the 20th of December, 2024. Fork time finalised on 2024-12-19. No fork voting occurs for the v4 fork. + { 4, 121800, 0, 1734607000 }, + + // version 5 starts from block 136100, which is on or around the 9th of January, 2025. Fork time finalised on 2025-01-08. No fork voting occurs for the v5 fork. + { 5, 136100, 0, 1736265945 }, + + // version 6 starts from block 154750, which is on or around the 4th of February, 2025. Fork time finalised on 2025-01-31. No fork voting occurs for the v6 fork. + { 6, 154750, 0, 1738336000 }, + + // version 7 starts from block 161900, which is on or around the 14th of February, 2025. Fork time finalised on 2025-02-04. No fork voting occurs for the v7 fork. + { 7, 161900, 0, 1739264400 }, - // version 5 starts from block 1288616, which is on or around the 15th of April, 2017. Fork time finalised on 2017-03-14. - { 5, 1288616, 0, 1489520158 }, + // version 8 starts from block 172000, which is on or around the 28th of February, 2025. Fork time finalised on 2025-02-24. No fork voting occurs for the v8 fork. + { 8, 172000, 0, 1740390000 }, + + // version 9 starts from block 179200, which is on or around the 10th of March, 2025. Fork time finalised on 2025-02-24. No fork voting occurs for the v9 fork. + { 9, 179200, 0, 1740393800 }, - // version 6 starts from block 1400000, which is on or around the 16th of September, 2017. Fork time finalised on 2017-08-18. - { 6, 1400000, 0, 1503046577 }, - - // version 7 starts from block 1546000, which is on or around the 6th of April, 2018. Fork time finalised on 2018-03-17. - { 7, 1546000, 0, 1521303150 }, - - // version 8 starts from block 1685555, which is on or around the 18th of October, 2018. Fork time finalised on 2018-09-02. - { 8, 1685555, 0, 1535889547 }, - - // version 9 starts from block 1686275, which is on or around the 19th of October, 2018. Fork time finalised on 2018-09-02. - { 9, 1686275, 0, 1535889548 }, - - // version 10 starts from block 1788000, which is on or around the 9th of March, 2019. Fork time finalised on 2019-02-10. - { 10, 1788000, 0, 1549792439 }, - - // version 11 starts from block 1788720, which is on or around the 10th of March, 2019. Fork time finalised on 2019-02-15. - { 11, 1788720, 0, 1550225678 }, - - // version 12 starts from block 1978433, which is on or around the 30th of November, 2019. Fork time finalised on 2019-10-18. - { 12, 1978433, 0, 1571419280 }, - - { 13, 2210000, 0, 1598180817 }, - { 14, 2210720, 0, 1598180818 }, - - { 15, 2688888, 0, 1656629117 }, - { 16, 2689608, 0, 1656629118 }, + // version 10 Carrot - including treasury mint - starts from block 334750, which is on or around the 13th of October, 2025. Fork time finalised on 2025-09-29. No fork voting occurs for the v10 fork. + {10, 334750, 0, 1759142500 }, }; const size_t num_mainnet_hard_forks = sizeof(mainnet_hard_forks) / sizeof(mainnet_hard_forks[0]); -const uint64_t mainnet_hard_fork_version_1_till = 1009826; +const uint64_t mainnet_hard_fork_version_1_till = ((uint64_t)-1); const hardfork_t testnet_hard_forks[] = { // version 1 from the start of the blockchain { 1, 1, 0, 1341378000 }, - // version 2 starts from block 624634, which is on or around the 23rd of November, 2015. Fork time finalised on 2015-11-20. No fork voting occurs for the v2 fork. - { 2, 624634, 0, 1445355000 }, + // version 2 starts from block 250 + { 2, 250, 0, 1445355000 }, - // versions 3-5 were passed in rapid succession from September 18th, 2016 - { 3, 800500, 0, 1472415034 }, - { 4, 801219, 0, 1472415035 }, - { 5, 802660, 0, 1472415036 + 86400*180 }, // add 5 months on testnet to shut the update warning up since there's a large gap to v6 + // version 3 starts from block 500 + { 3, 500, 0, 1729518000 }, - { 6, 971400, 0, 1501709789 }, - { 7, 1057027, 0, 1512211236 }, - { 8, 1057058, 0, 1533211200 }, - { 9, 1057778, 0, 1533297600 }, - { 10, 1154318, 0, 1550153694 }, - { 11, 1155038, 0, 1550225678 }, - { 12, 1308737, 0, 1569582000 }, - { 13, 1543939, 0, 1599069376 }, - { 14, 1544659, 0, 1599069377 }, - { 15, 1982800, 0, 1652727000 }, - { 16, 1983520, 0, 1652813400 }, + // version 4 (full proofs) starts from block 600 + { 4, 600, 0, 1734607000 }, + + // version 5 (TX shutdown) starts from block 800 + { 5, 800, 0, 1734607005 }, + + // version 6 (audit 1) starts from block 815 + { 6, 815, 0, 1734608000 }, + + // version 7 (audit 1 pause, blacklist controlling payouts) starts from block 900 + { 7, 900, 0, 1739264400 }, + + // version 8 (audit 1 resume) starts from block 950 + { 8, 950, 0, 1739270000 }, + + // version 9 (audit 1 complete, whitelist controlling payouts) starts from block 1000 + { 9, 1000, 0, 1739280000 }, + + // version 10 Carrot - including treasury mint - starts from block 1100 + {10, 1100, 0, 1739780005 }, }; const size_t num_testnet_hard_forks = sizeof(testnet_hard_forks) / sizeof(testnet_hard_forks[0]); -const uint64_t testnet_hard_fork_version_1_till = 624633; +const uint64_t testnet_hard_fork_version_1_till = ((uint64_t)-1); const hardfork_t stagenet_hard_forks[] = { // version 1 from the start of the blockchain { 1, 1, 0, 1341378000 }, // versions 2-7 in rapid succession from March 13th, 2018 - { 2, 32000, 0, 1521000000 }, - { 3, 33000, 0, 1521120000 }, - { 4, 34000, 0, 1521240000 }, - { 5, 35000, 0, 1521360000 }, - { 6, 36000, 0, 1521480000 }, - { 7, 37000, 0, 1521600000 }, - { 8, 176456, 0, 1537821770 }, - { 9, 177176, 0, 1537821771 }, - { 10, 269000, 0, 1550153694 }, - { 11, 269720, 0, 1550225678 }, - { 12, 454721, 0, 1571419280 }, - { 13, 675405, 0, 1598180817 }, - { 14, 676125, 0, 1598180818 }, - { 15, 1151000, 0, 1656629117 }, - { 16, 1151720, 0, 1656629118 }, + //{ 2, 1000, 0, 1521000000 }, }; const size_t num_stagenet_hard_forks = sizeof(stagenet_hard_forks) / sizeof(stagenet_hard_forks[0]); diff --git a/src/common.h b/src/common.h index 1d70da9..211babb 100644 --- a/src/common.h +++ b/src/common.h @@ -117,7 +117,7 @@ extern "C" void __nss_module_disable_loading(); namespace p2pool { constexpr size_t HASH_SIZE = 32; -constexpr uint8_t HARDFORK_SUPPORTED_VERSION = 16; +constexpr uint8_t HARDFORK_SUPPORTED_VERSION = 10; constexpr uint8_t MINER_REWARD_UNLOCK_TIME = 60; constexpr uint8_t NONCE_SIZE = 4; constexpr uint8_t EXTRA_NONCE_SIZE = 4; diff --git a/src/p2p_server.cpp b/src/p2p_server.cpp index 2122580..101135a 100644 --- a/src/p2p_server.cpp +++ b/src/p2p_server.cpp @@ -48,7 +48,7 @@ LOG_CATEGORY(P2PServer) static constexpr char saved_peer_list_file_name[] = "p2pool_peers.txt"; static constexpr char saved_onion_peer_list_file_name[] = "p2pool_onion_peers.txt"; -static const char* seed_nodes[] = { "" }; +static const char* seed_nodes[] = { "p2pool-seed01.whiskymine.io" }; static const char* seed_nodes_mini[] = { "" }; static const char* seed_nodes_nano[] = { "" };