diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 77dd4a58..541dc852 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -84,7 +84,7 @@ source_group(wallet FILES ${WALLET}) INIT_SHARED_PCH() add_subdirectory(config) -add_subdirectory(genesis_generator) +add_subdirectory(genesis) add_library(common ${COMMON}) add_dependencies(common version config ${PCH_LIB_NAME}) diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index cf21f253..0228b42a 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -19,45 +19,11 @@ target_include_directories(config INTERFACE $ ) -#add_custom_target(gen_config_header -# DEPENDS "${CMAKE_BINARY_DIR}/src/config/currency_config.h" -#) + file(WRITE "${CMAKE_BINARY_DIR}/src/config/currency_config_dummy.cpp" "") - add_library(currency_config OBJECT "${CMAKE_BINARY_DIR}/src/config/currency_config.h" "${CMAKE_BINARY_DIR}/src/config/currency_config_dummy.cpp" ) add_dependencies(currency_config config) - -set(GENERATE_PREMINE_WALLET OFF CACHE BOOL "Generate premine wallet") -set(PREMINE_WALLET_PASSWORD "" CACHE STRING "Premine wallet password") - -if (GENERATE_PREMINE_WALLET AND GENERATE_FRESH_GENESIS) - message(FATAL_ERROR "Genesis can not be generated together with premine wallet") -endif() - -if (GENERATE_PREMINE_WALLET) - unset(GENERATE_PREMINE_WALLET CACHE) - message(WARNING "Generating premine wallet") - - if (NOT DEFINED PREMINE_WALLET_PASSWORD OR PREMINE_WALLET_PASSWORD STREQUAL "") - message(FATAL_ERROR "set PREMINE_WALLET_PASSWORD or GENESIS_PREMINE_ADDRESS to generate genesis block") - endif() - - # Make wallet directory - add_custom_target( - premine_wallet - "${CMAKE_COMMAND}" -E make_directory "${CMAKE_SOURCE_DIR}/premine_wallet" - COMMENT "Creating premine wallet directory" - ) - - # Generate wallet - add_custom_command(TARGET premine_wallet POST_BUILD - COMMAND echo ${PREMINE_WALLET_PASSWORD} | $ --generate-new-wallet ${CMAKE_SOURCE_DIR}/premine_wallet/premine_wallet - COMMENT "Generating premine wallet in ${CMAKE_SOURCE_DIR}/premine_wallet" - ) - - add_dependencies(premine_wallet simplewallet) -endif() diff --git a/src/currency_core/genesis.cpp b/src/currency_core/genesis.cpp index d8828a24..63ec554a 100644 --- a/src/currency_core/genesis.cpp +++ b/src/currency_core/genesis.cpp @@ -19,8 +19,8 @@ namespace currency { #ifndef TESTNET -#include "generated/_genesis.cpp.gen" +#include "../genesis/_genesis.cpp.gen" #else -#include "generated/_genesis_tn.cpp.gen" +#include "../genesis/_genesis_tn.cpp.gen" #endif } diff --git a/src/currency_core/genesis.h b/src/currency_core/genesis.h index f7de99c0..2f83ac91 100644 --- a/src/currency_core/genesis.h +++ b/src/currency_core/genesis.h @@ -22,9 +22,9 @@ namespace currency { #pragma pack(push, 1) #ifndef TESTNET -#include "generated/_genesis.h.gen" +#include "../genesis/_genesis.h.gen" #else -#include "generated/_genesis_tn.h.gen" +#include "../genesis/_genesis_tn.h.gen" #endif #pragma pack(pop) extern const genesis_tx_raw_data ggenesis_tx_raw; diff --git a/src/currency_core/genesis_acc.cpp b/src/currency_core/genesis_acc.cpp index 92a59773..2e79f008 100644 --- a/src/currency_core/genesis_acc.cpp +++ b/src/currency_core/genesis_acc.cpp @@ -21,8 +21,8 @@ namespace currency { #ifndef TESTNET -#include "generated/_genesis_acc.cpp.gen" +#include "../genesis/_genesis_acc.cpp.gen" #else -#include "generated/_genesis_acc_tn.cpp.gen" +#include "../genesis/_genesis_acc_tn.cpp.gen" #endif } diff --git a/src/genesis_generator/CMakeLists.txt b/src/genesis/CMakeLists.txt similarity index 96% rename from src/genesis_generator/CMakeLists.txt rename to src/genesis/CMakeLists.txt index e8e6ae3a..cf2115c7 100644 --- a/src/genesis_generator/CMakeLists.txt +++ b/src/genesis/CMakeLists.txt @@ -29,7 +29,7 @@ if (GENERATE_FRESH_GENESIS) message(FATAL_ERROR "GENESIS_PREMINE_ADDRESS is not set and could not be read from file. Please set it via -DGENESIS_PREMINE_ADDRESS=
") else() add_custom_command(TARGET genesis_generator POST_BUILD - COMMAND $ --address ${GENESIS_PREMINE_ADDRESS} --proof "${GENESIS_PROOF}" --output "${CMAKE_SOURCE_DIR}/src/currency_core/generated/" + COMMAND $ --address ${GENESIS_PREMINE_ADDRESS} --proof "${GENESIS_PROOF}" --output "${CMAKE_SOURCE_DIR}/src/genesis/" COMMENT "Generating genesis data..." VERBATIM ) diff --git a/src/genesis/README.md b/src/genesis/README.md new file mode 100644 index 00000000..2c49a676 --- /dev/null +++ b/src/genesis/README.md @@ -0,0 +1,44 @@ +# Genesis Block Update Instructions + +This document outlines the steps to trigger a genesis block update. The following instructions are based on the provided Makefile snippet. + +## Prerequisites + +* CMake +* Make + +## Steps + +1. **Generate Premine Wallet (Optional):** + + This step generates a premine wallet. It sets the `GENERATE_PREMINE_WALLET` CMake option to `1` and the `PREMINE_WALLET_PASSWORD` to `12345678`. + + ```bash + cmake -DGENERATE_PREMINE_WALLET=1 -DPREMINE_WALLET_PASSWORD=12345678 + cmake --build ./src --target premine_wallet + ``` + +2. **Generate Fresh Genesis Block:** + + This step generates a fresh genesis block. It sets the `GENERATE_FRESH_GENESIS` CMake option to `1`. + + ```bash + cmake -DGENERATE_FRESH_GENESIS=1 + cmake --build ./src --target genesis_generator + ``` + +3. **Build the Project:** + + This step builds the entire project. + + ```bash + cmake + make + ``` + +## Notes + +* Replace `` and `` with the actual values used in your environment. These are likely variables defined elsewhere in the Makefile. +* The `|| true` at the end of the `premine_wallet` build command ensures that the script continues even if the build fails. +* This process assumes that the `CMAKE` macro and other variables like `dir_release` are properly defined in the Makefile. +* The exact impact of these steps on the genesis block update depends on the codebase. Consult the source code for more details. diff --git a/src/currency_core/generated/_genesis.cpp.gen b/src/genesis/_genesis.cpp.gen similarity index 100% rename from src/currency_core/generated/_genesis.cpp.gen rename to src/genesis/_genesis.cpp.gen diff --git a/src/currency_core/generated/_genesis.h.gen b/src/genesis/_genesis.h.gen similarity index 100% rename from src/currency_core/generated/_genesis.h.gen rename to src/genesis/_genesis.h.gen diff --git a/src/currency_core/generated/_genesis_acc.cpp.gen b/src/genesis/_genesis_acc.cpp.gen similarity index 100% rename from src/currency_core/generated/_genesis_acc.cpp.gen rename to src/genesis/_genesis_acc.cpp.gen diff --git a/src/currency_core/generated/_genesis_acc_tn.cpp.gen b/src/genesis/_genesis_acc_tn.cpp.gen similarity index 100% rename from src/currency_core/generated/_genesis_acc_tn.cpp.gen rename to src/genesis/_genesis_acc_tn.cpp.gen diff --git a/src/currency_core/generated/_genesis_tn.cpp.gen b/src/genesis/_genesis_tn.cpp.gen similarity index 100% rename from src/currency_core/generated/_genesis_tn.cpp.gen rename to src/genesis/_genesis_tn.cpp.gen diff --git a/src/currency_core/generated/_genesis_tn.h.gen b/src/genesis/_genesis_tn.h.gen similarity index 100% rename from src/currency_core/generated/_genesis_tn.h.gen rename to src/genesis/_genesis_tn.h.gen diff --git a/src/genesis_generator/generate_test_genesis.cpp b/src/genesis/generate_test_genesis.cpp similarity index 100% rename from src/genesis_generator/generate_test_genesis.cpp rename to src/genesis/generate_test_genesis.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index fb38a979..812dca5d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -28,12 +28,12 @@ add_executable(net_load_tests_srv net_load_tests/srv.cpp) add_dependencies(coretests version) -target_link_libraries(coretests rpc wallet currency_core common crypto zlibstatic ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) -target_link_libraries(functional_tests rpc wallet currency_core crypto common zlibstatic ethash libminiupnpc-static ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) +target_link_libraries(coretests rpc wallet currency_core common crypto ZLIB::ZLIB ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) +target_link_libraries(functional_tests rpc wallet currency_core crypto common ZLIB::ZLIB ethash miniupnpc::miniupnpc ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) target_link_libraries(hash-tests crypto ethash) target_link_libraries(hash-target-tests crypto currency_core ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) -target_link_libraries(performance_tests wallet rpc currency_core common crypto zlibstatic ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) -target_link_libraries(unit_tests wallet currency_core common crypto gtest_main zlibstatic ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) +target_link_libraries(performance_tests wallet rpc currency_core common crypto ZLIB::ZLIB ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) +target_link_libraries(unit_tests wallet currency_core common crypto gtest_main ZLIB::ZLIB ethash ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto) target_link_libraries(net_load_tests_clt currency_core common crypto gtest_main ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) target_link_libraries(net_load_tests_srv currency_core common crypto gtest_main ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}) diff --git a/tests/db_tests/CMakeLists.txt b/tests/db_tests/CMakeLists.txt index 50d0e9df..4203961e 100644 --- a/tests/db_tests/CMakeLists.txt +++ b/tests/db_tests/CMakeLists.txt @@ -1,3 +1,3 @@ add_executable(db_tests db_tests.cpp) -target_link_libraries(db_tests crypto common lmdb zlibstatic ${Boost_LIBRARIES}) +target_link_libraries(db_tests crypto common lmdb ZLIB::ZLIB ${Boost_LIBRARIES})