Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions cmake/module/ProcessConfigurations.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,23 @@ function(remove_cxx_flag_from_all_configs flag)
endforeach()
endfunction()

function(remove_c_flag_from_all_configs flag)
get_all_configs(all_configs)
foreach(config IN LISTS all_configs)
string(TOUPPER "${config}" config_uppercase)
set(flags "${CMAKE_C_FLAGS_${config_uppercase}}")
separate_arguments(flags)
list(FILTER flags EXCLUDE REGEX "${flag}")
list(JOIN flags " " new_flags)
set(CMAKE_C_FLAGS_${config_uppercase} "${new_flags}" PARENT_SCOPE)
set(CMAKE_C_FLAGS_${config_uppercase} "${new_flags}"
CACHE STRING
"Flags used by the C compiler during ${config_uppercase} builds."
FORCE
)
endforeach()
endfunction()

function(replace_cxx_flag_in_config config old_flag new_flag)
string(TOUPPER "CMAKE_CXX_FLAGS_${config}" var_name)
if("${var_name}" IN_LIST precious_variables)
Expand All @@ -121,8 +138,10 @@ include(TryAppendCXXFlags)
# We leave assertions on.
if(MSVC)
remove_cxx_flag_from_all_configs(/DNDEBUG)
remove_c_flag_from_all_configs(/DNDEBUG)
else()
remove_cxx_flag_from_all_configs(-DNDEBUG)
remove_c_flag_from_all_configs(-DNDEBUG)

# Adjust flags used by the CXX compiler during RELEASE builds.
# Prefer -O2 optimization level. (-O3 is CMake's default for Release for many compilers.)
Expand Down
13 changes: 13 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ include(../cmake/crc32c.cmake)
include(../cmake/leveldb.cmake)
include(../cmake/minisketch.cmake)
add_subdirectory(univalue)
add_subdirectory(simplicity)
if (ENABLE_IPC AND NOT WITH_EXTERNAL_LIBMULTIPROCESS)
include(../cmake/libmultiprocess.cmake)
add_libmultiprocess(ipc/libmultiprocess)
Expand Down Expand Up @@ -49,6 +50,7 @@ add_library(bitcoin_clientversion STATIC EXCLUDE_FROM_ALL
target_link_libraries(bitcoin_clientversion
PRIVATE
core_interface
BitcoinSimplicity
)
add_dependencies(bitcoin_clientversion generate_build_info)

Expand Down Expand Up @@ -76,6 +78,7 @@ target_link_libraries(bitcoin_consensus
core_interface
bitcoin_crypto
secp256k1
BitcoinSimplicity
)

if(WITH_ZMQ)
Expand Down Expand Up @@ -144,6 +147,7 @@ target_link_libraries(bitcoin_common
bitcoin_util
univalue
secp256k1
BitcoinSimplicity
Boost::headers
$<TARGET_NAME_IF_EXISTS:USDT::headers>
$<$<PLATFORM_ID:Windows>:ws2_32>
Expand All @@ -164,6 +168,7 @@ if(ENABLE_WALLET)
add_windows_application_manifest(bitcoin-wallet)
target_link_libraries(bitcoin-wallet
core_interface
BitcoinSimplicity
bitcoin_wallet
bitcoin_common
bitcoin_util
Expand Down Expand Up @@ -275,6 +280,7 @@ target_link_libraries(bitcoin_node
PRIVATE
core_interface
bitcoin_common
BitcoinSimplicity
bitcoin_util
$<TARGET_NAME_IF_EXISTS:bitcoin_zmq>
leveldb
Expand Down Expand Up @@ -306,6 +312,7 @@ if(BUILD_DAEMON)
add_windows_application_manifest(bitcoind)
target_link_libraries(bitcoind
core_interface
BitcoinSimplicity
bitcoin_node
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
)
Expand All @@ -318,6 +325,7 @@ if(ENABLE_IPC AND BUILD_DAEMON)
)
target_link_libraries(bitcoin-node
core_interface
BitcoinSimplicity
bitcoin_node
bitcoin_ipc
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
Expand All @@ -333,6 +341,7 @@ add_library(bitcoin_cli STATIC EXCLUDE_FROM_ALL
target_link_libraries(bitcoin_cli
PUBLIC
core_interface
BitcoinSimplicity
univalue
)

Expand All @@ -344,6 +353,7 @@ if(BUILD_CLI)
add_windows_application_manifest(bitcoin-cli)
target_link_libraries(bitcoin-cli
core_interface
BitcoinSimplicity
bitcoin_cli
bitcoin_common
bitcoin_util
Expand All @@ -360,6 +370,7 @@ if(BUILD_TX)
add_windows_application_manifest(bitcoin-tx)
target_link_libraries(bitcoin-tx
core_interface
BitcoinSimplicity
bitcoin_common
bitcoin_util
univalue
Expand All @@ -374,6 +385,7 @@ if(BUILD_UTIL)
add_windows_application_manifest(bitcoin-util)
target_link_libraries(bitcoin-util
core_interface
BitcoinSimplicity
bitcoin_common
bitcoin_util
)
Expand All @@ -399,6 +411,7 @@ if(BUILD_KERNEL_LIB)
target_link_libraries(bitcoin-chainstate
PRIVATE
core_interface
BitcoinSimplicity
bitcoinkernel
)
install_binary_component(bitcoin-chainstate INTERNAL)
Expand Down
1 change: 1 addition & 0 deletions src/consensus/params.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ constexpr bool ValidDeployment(BuriedDeployment dep) { return dep <= DEPLOYMENT_
enum DeploymentPos : uint16_t {
DEPLOYMENT_TESTDUMMY,
DEPLOYMENT_TAPROOT, // Deployment of Schnorr/Taproot (BIPs 340-342)
DEPLOYMENT_SIMPLICITY, // Deployment of Simplicity
// NOTE: Also add new deployments to VersionBitsDeploymentInfo in deploymentinfo.cpp
MAX_VERSION_BITS_DEPLOYMENTS
};
Expand Down
4 changes: 4 additions & 0 deletions src/deploymentinfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ const std::array<VBDeploymentInfo,Consensus::MAX_VERSION_BITS_DEPLOYMENTS> Versi
.name = "taproot",
.gbt_optional_rule = true,
},
VBDeploymentInfo{
.name = "simplicity",
.gbt_optional_rule = true,
},
};

std::string DeploymentName(Consensus::BuriedDeployment dep)
Expand Down
2 changes: 2 additions & 0 deletions src/ipc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ target_capnp_sources(bitcoin_ipc ${CMAKE_CURRENT_SOURCE_DIR}
target_link_libraries(bitcoin_ipc
PRIVATE
core_interface
BitcoinSimplicity
univalue
)

Expand All @@ -40,6 +41,7 @@ if(BUILD_TESTS)
target_link_libraries(bitcoin_ipc_test
PRIVATE
core_interface
BitcoinSimplicity
univalue
Boost::headers
)
Expand Down
35 changes: 35 additions & 0 deletions src/kernel/chainparams.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,13 @@ class CMainParams : public CChainParams {
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;

consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].period = 2016;

consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68"};
consensus.defaultAssumeValid = uint256{"00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb"}; // 912683

Expand Down Expand Up @@ -243,6 +250,13 @@ class CTestNetParams : public CChainParams {
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;

consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].period = 2016;

consensus.nMinimumChainWork = uint256{"0000000000000000000000000000000000000000000016dd270dd94fac1d7632"};
consensus.defaultAssumeValid = uint256{"0000000000000065c6c38258e201971a3fdfcc2ceee0dd6e85a6c022d45dee34"}; // 4550000

Expand Down Expand Up @@ -345,6 +359,13 @@ class CTestNet4Params : public CChainParams {
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1512; // 75%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;

consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].period = 2016;

consensus.nMinimumChainWork = uint256{"00000000000000000000000000000000000000000000034a4690fe592dc49c7c"};
consensus.defaultAssumeValid = uint256{"000000000000000180a58e7fa3b0db84b5ea76377524894f53660d93ac839d9b"}; // 91000

Expand Down Expand Up @@ -490,6 +511,13 @@ class SigNetParams : public CChainParams {
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 2016;

consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].period = 2016;

// message start is defined as the first 4 bytes of the sha256d of the block script
HashWriter h{};
h << consensus.signet_challenge;
Expand Down Expand Up @@ -573,6 +601,13 @@ class CRegTestParams : public CChainParams
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].threshold = 108; // 75%
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].period = 144;

consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].bit = 24;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].min_activation_height = 0; // No activation delay
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].threshold = 1815; // 90%
consensus.vDeployments[Consensus::DEPLOYMENT_SIMPLICITY].period = 2016;

consensus.nMinimumChainWork = uint256{};
consensus.defaultAssumeValid = uint256{};

Expand Down
1 change: 1 addition & 0 deletions src/policy/policy.h
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ static constexpr script_verify_flags STANDARD_SCRIPT_VERIFY_FLAGS{MANDATORY_SCRI
SCRIPT_VERIFY_CONST_SCRIPTCODE |
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_TAPROOT_VERSION |
SCRIPT_VERIFY_DISCOURAGE_OP_SUCCESS |
SCRIPT_VERIFY_SIMPLICITY |
SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_PUBKEYTYPE};

/** For convenience, standard but not mandatory verify flags. */
Expand Down
2 changes: 2 additions & 0 deletions src/qt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ add_windows_application_manifest(bitcoin-qt)
target_link_libraries(bitcoin-qt
core_interface
bitcoinqt
BitcoinSimplicity
bitcoin_node
)

Expand All @@ -282,6 +283,7 @@ if(ENABLE_IPC)
)
target_link_libraries(bitcoin-gui
core_interface
BitcoinSimplicity
bitcoinqt
bitcoin_node
bitcoin_ipc
Expand Down
1 change: 1 addition & 0 deletions src/qt/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ target_link_libraries(test_bitcoin-qt
bitcoinqt
test_util
bitcoin_node
BitcoinSimplicity
Boost::headers
Qt6::Test
)
Expand Down
Loading
Loading