启用 WITH_GRPC=ON 支持 Tari 合并挖矿
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+10
-7
@@ -1,5 +1,5 @@
|
||||
# p2pool musl 纯静态构建(参照上游官方 c-cpp.yml 的 Alpine static release 流程)
|
||||
# Alpine + 自编 external 静态库(curl/libuv/libzmq) + 上游 boringssl + -DSTATIC_BINARY=ON
|
||||
# p2pool musl 纯静态构建(external 静态库参照上游官方 c-cpp.yml 的 Alpine static 流程)
|
||||
# Alpine + 自编 external 静态库(curl/libuv/libzmq) + 静态 grpc 栈(WITH_GRPC=ON,Tari 合并挖矿) + -DSTATIC_BINARY=ON
|
||||
# 产物 fully-static(ldd: not a dynamic executable),glibc/musl 任意发行版直接运行。
|
||||
# 为何 musl:musl getaddrinfo 自包含,全静态可跨发行版;glibc 静态会因 NSS dlopen 失败。
|
||||
FROM alpine:3.21 AS build
|
||||
@@ -9,15 +9,18 @@ RUN apk add --no-cache git cmake gcc g++ make linux-headers perl
|
||||
|
||||
RUN git clone https://github.com/SChernykh/p2pool /src/p2pool
|
||||
WORKDIR /src/p2pool
|
||||
# 只拉构建所需子模块:8 个常规依赖 + grpc 仅取其 boringssl(p2pool cmake/ssl 无条件依赖),
|
||||
# 不递归 grpc 其余巨型子模块(abseil/protobuf 等),WITH_GRPC=OFF 不编 grpc 本体。
|
||||
# 拉 8 个常规子模块 + grpc 及其 6 个必需 third_party(abseil/boringssl/cares/protobuf/re2/zlib)。
|
||||
# WITH_GRPC=ON 需完整 grpc 栈静态编译以支持 Tari 合并挖矿;其余 9 个 grpc 子模块
|
||||
# (benchmark/googletest/envoy/googleapis/xds 等测试或 xDS 依赖,已 GRPC_NO_XDS) 跳过省体积/时间。
|
||||
RUN git checkout ${P2POOL_VERSION} && \
|
||||
git submodule update --init --recursive \
|
||||
external/src/RandomX external/src/rapidjson external/src/cppzmq \
|
||||
external/src/libuv external/src/libzmq external/src/robin-hood-hashing \
|
||||
external/src/curl external/src/miniupnp && \
|
||||
git submodule update --init external/src/grpc && \
|
||||
git -C external/src/grpc submodule update --init third_party/boringssl-with-bazel
|
||||
git -C external/src/grpc submodule update --init --recursive \
|
||||
third_party/abseil-cpp third_party/boringssl-with-bazel \
|
||||
third_party/cares/cares third_party/protobuf third_party/re2 third_party/zlib
|
||||
|
||||
# external libcurl:HTTP + p2pool boringssl 集成(保留 rpc-ssl 连 HTTPS monerod)。
|
||||
# 完整照搬官方 c-cpp.yml 的 curl flags:P2POOL_BORINGSSL=ON 是上游给 curl 打的独立
|
||||
@@ -59,11 +62,11 @@ RUN cd external/src/libzmq && mkdir build && cd build && \
|
||||
-DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF && \
|
||||
make -j"$(nproc)"
|
||||
|
||||
# p2pool 主体:纯静态(STATIC_BINARY) + 禁 grpc本体 + 禁合并挖矿捐赠(gitea-p2pool 定制)
|
||||
# p2pool 主体:纯静态(STATIC_BINARY) + 启用 grpc(Tari 合并挖矿) + 禁合并挖矿捐赠(gitea-p2pool 定制)
|
||||
RUN if [ "$TARGETARCH" = "arm64" ]; then ARCH_ID=aarch64; else ARCH_ID=x86_64; fi && \
|
||||
mkdir build && cd build && \
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
-DSTATIC_BINARY=ON -DWITH_GRPC=OFF -DWITH_MERGE_MINING_DONATION=OFF \
|
||||
-DSTATIC_BINARY=ON -DWITH_GRPC=ON -DWITH_MERGE_MINING_DONATION=OFF \
|
||||
-DARCH_ID="$ARCH_ID" \
|
||||
-DCMAKE_C_FLAGS='-Wl,-s -Wl,--gc-sections' \
|
||||
-DCMAKE_CXX_FLAGS='-Wl,-s -Wl,--gc-sections' && \
|
||||
|
||||
Reference in New Issue
Block a user