Allow TLS support without GRPC
This commit is contained in:
15
.github/workflows/c-cpp.yml
vendored
15
.github/workflows/c-cpp.yml
vendored
@@ -423,11 +423,12 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
config:
|
config:
|
||||||
- {vs: Visual Studio 17 2022, os: 2022, vspath: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise", rx: "ON", upnp: "ON", grpc: "ON"}
|
- {vs: Visual Studio 17 2022, os: 2022, vspath: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise", rx: "ON", upnp: "ON", grpc: "ON", tls: "ON"}
|
||||||
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "ON", upnp: "ON", grpc: "ON"}
|
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "ON", upnp: "ON", grpc: "ON", tls: "ON"}
|
||||||
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "ON", upnp: "ON", grpc: "OFF"}
|
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "ON", upnp: "ON", grpc: "OFF", tls: "ON"}
|
||||||
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "OFF", upnp: "ON", grpc: "OFF"}
|
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "OFF", upnp: "ON", grpc: "OFF", tls: "ON"}
|
||||||
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "OFF", upnp: "OFF", grpc: "OFF"}
|
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "OFF", upnp: "OFF", grpc: "OFF", tls: "ON"}
|
||||||
|
- {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "OFF", upnp: "OFF", grpc: "OFF", tls: "OFF"}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -442,7 +443,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake .. -G "${{ matrix.config.vs }}" -DCMAKE_SYSTEM_VERSION="10.0" -DWITH_RANDOMX=${{ matrix.config.rx }} -DWITH_UPNP=${{ matrix.config.upnp }} -DWITH_GRPC=${{ matrix.config.grpc }}
|
cmake .. -G "${{ matrix.config.vs }}" -DCMAKE_SYSTEM_VERSION="10.0" -DWITH_RANDOMX=${{ matrix.config.rx }} -DWITH_UPNP=${{ matrix.config.upnp }} -DWITH_GRPC=${{ matrix.config.grpc }} -DWITH_TLS=${{ matrix.config.tls }}
|
||||||
& "${{ matrix.config.vspath }}\\MSBuild\\Current\\Bin\\amd64\\msbuild" -v:m /m /p:Configuration=Release p2pool.vcxproj
|
& "${{ matrix.config.vspath }}\\MSBuild\\Current\\Bin\\amd64\\msbuild" -v:m /m /p:Configuration=Release p2pool.vcxproj
|
||||||
|
|
||||||
- name: Check Windows 7 compatibility
|
- name: Check Windows 7 compatibility
|
||||||
@@ -480,7 +481,7 @@ jobs:
|
|||||||
- name: Archive binary
|
- name: Archive binary
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: p2pool-vs-${{ matrix.config.os }}-randomx-${{ matrix.config.rx }}-upnp-${{ matrix.config.upnp }}-grpc-${{ matrix.config.grpc }}.exe
|
name: p2pool-vs-${{ matrix.config.os }}-randomx-${{ matrix.config.rx }}-upnp-${{ matrix.config.upnp }}-grpc-${{ matrix.config.grpc }}-tls-${{ matrix.config.tls }}.exe
|
||||||
path: build/Release/p2pool.exe
|
path: build/Release/p2pool.exe
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ if (WITH_GRPC)
|
|||||||
include(cmake/grpc.cmake)
|
include(cmake/grpc.cmake)
|
||||||
|
|
||||||
add_subdirectory(external/src/Tari)
|
add_subdirectory(external/src/Tari)
|
||||||
|
elseif (WITH_TLS)
|
||||||
|
add_subdirectory(cmake/ssl)
|
||||||
|
include_directories(external/src/grpc/third_party/boringssl-with-bazel/src/include)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_RANDOMX)
|
if (WITH_RANDOMX)
|
||||||
@@ -167,7 +170,7 @@ if (WITH_GRPC)
|
|||||||
set(SOURCES ${SOURCES} src/merge_mining_client_tari.cpp)
|
set(SOURCES ${SOURCES} src/merge_mining_client_tari.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WITH_GRPC AND WITH_TLS)
|
if (WITH_TLS)
|
||||||
add_definitions(-DWITH_TLS)
|
add_definitions(-DWITH_TLS)
|
||||||
|
|
||||||
set(HEADERS ${HEADERS} src/tls.h)
|
set(HEADERS ${HEADERS} src/tls.h)
|
||||||
@@ -412,6 +415,8 @@ if (STATIC_BINARY OR STATIC_LIBS)
|
|||||||
|
|
||||||
if (WITH_GRPC)
|
if (WITH_GRPC)
|
||||||
set(STATIC_LIBS ${STATIC_LIBS} Tari_gRPC grpc grpc++ libprotobuf)
|
set(STATIC_LIBS ${STATIC_LIBS} Tari_gRPC grpc grpc++ libprotobuf)
|
||||||
|
elseif(WITH_TLS)
|
||||||
|
set(STATIC_LIBS ${STATIC_LIBS} ssl crypto)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME}
|
target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||||
@@ -423,6 +428,8 @@ if (STATIC_BINARY OR STATIC_LIBS)
|
|||||||
else()
|
else()
|
||||||
if (WITH_GRPC)
|
if (WITH_GRPC)
|
||||||
set(LIBS ${LIBS} Tari_gRPC grpc grpc++ libprotobuf)
|
set(LIBS ${LIBS} Tari_gRPC grpc grpc++ libprotobuf)
|
||||||
|
elseif(WITH_TLS)
|
||||||
|
set(LIBS ${LIBS} ssl crypto)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} debug ${ZMQ_LIBRARY_DEBUG} debug ${UV_LIBRARY_DEBUG} debug ${CURL_LIBRARY_DEBUG} optimized ${ZMQ_LIBRARY} optimized ${UV_LIBRARY} optimized ${CURL_LIBRARY} ${LIBS})
|
target_link_libraries(${CMAKE_PROJECT_NAME} debug ${ZMQ_LIBRARY_DEBUG} debug ${UV_LIBRARY_DEBUG} debug ${CURL_LIBRARY_DEBUG} optimized ${ZMQ_LIBRARY} optimized ${UV_LIBRARY} optimized ${CURL_LIBRARY} ${LIBS})
|
||||||
|
|||||||
31
cmake/ssl/CMakeLists.txt
Normal file
31
cmake/ssl/CMakeLists.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.12)
|
||||||
|
|
||||||
|
project(P2Pool_SSL LANGUAGES C CXX)
|
||||||
|
|
||||||
|
if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
||||||
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /W0 /Zi /Od /Ob0 /MP /MTd")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /W0 /Zi /Od /Ob0 /MP /MTd")
|
||||||
|
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /W0 /O1 /Ob2 /Oi /Os /Oy /MP /MT")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /W0 /O1 /Ob2 /Oi /Os /Oy /MP /MT")
|
||||||
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} /W0 /Ob1 /Ot /Zi /MP /MT")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /W0 /Ob1 /Ot /Zi /MP /MT")
|
||||||
|
else()
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Os -w")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Os -w")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||||
|
if(CMAKE_VERSION VERSION_LESS 3.13)
|
||||||
|
message(WARNING "Disabling SSL assembly support because CMake version ${CMAKE_VERSION} is too old (less than 3.13)")
|
||||||
|
set(OPENSSL_NO_ASM ON)
|
||||||
|
else()
|
||||||
|
include(CheckLanguage)
|
||||||
|
check_language(ASM_NASM)
|
||||||
|
if(NOT CMAKE_ASM_NASM_COMPILER)
|
||||||
|
message(WARNING "Disabling SSL assembly support because NASM could not be found")
|
||||||
|
set(OPENSSL_NO_ASM ON)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(../../external/src/grpc/third_party/boringssl-with-bazel BoringSSL)
|
||||||
@@ -541,7 +541,7 @@ void StratumServer::show_workers()
|
|||||||
size_t n = 0;
|
size_t n = 0;
|
||||||
|
|
||||||
LOGINFO(0, log::pad_right("IP:port", addr_len + 8)
|
LOGINFO(0, log::pad_right("IP:port", addr_len + 8)
|
||||||
<< "TLS "
|
<< "TLS "
|
||||||
<< log::pad_right("uptime", 20)
|
<< log::pad_right("uptime", 20)
|
||||||
<< log::pad_right("difficulty", 20)
|
<< log::pad_right("difficulty", 20)
|
||||||
<< log::pad_right("hashrate", 15)
|
<< log::pad_right("hashrate", 15)
|
||||||
@@ -566,7 +566,7 @@ void StratumServer::show_workers()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
LOGINFO(0, log::pad_right(static_cast<const char*>(c->m_addrString), addr_len + 8)
|
LOGINFO(0, log::pad_right(static_cast<const char*>(c->m_addrString), addr_len + 8)
|
||||||
<< (is_tls ? "no " : "yes ")
|
<< (is_tls ? "no " : "yes ")
|
||||||
<< log::pad_right(log::Duration(cur_time - c->m_connectedTime), 20)
|
<< log::pad_right(log::Duration(cur_time - c->m_connectedTime), 20)
|
||||||
<< log::pad_right(diff, 20)
|
<< log::pad_right(diff, 20)
|
||||||
<< log::pad_right(log::Hashrate(c->m_autoDiff.lo / AUTO_DIFF_TARGET_TIME, m_autoDiff && (c->m_autoDiff != 0)), 15)
|
<< log::pad_right(log::Hashrate(c->m_autoDiff.lo / AUTO_DIFF_TARGET_TIME, m_autoDiff && (c->m_autoDiff != 0)), 15)
|
||||||
|
|||||||
Reference in New Issue
Block a user