dgb: minimal compiling skeleton + c2pool-dgb target (slice #4, Option B) - #112
Merged
Conversation
Author a genuinely minimal src/impl/dgb/node.cpp + src/c2pool/main_dgb.cpp and add the c2pool-dgb add_executable target (mirrors c2pool-btc) so the DGB binary builds and links off master. COMPILING SKELETON ONLY -- the embedded daemon + pool/sharechain body (PPLNS) is M3 / Phase B per the embedded-daemon roadmap (DGB = PORT-not-activation; Phase A p2p+mempool already landed under impl/dgb/coin/). The target compiles node.cpp directly and links only json + Boost: the skeleton references no core/coin/pool/ltc symbols, so it needs no coin lib and the top-level OBJECT-lib registration of src/impl/dgb (ci-steward convention PR) is not raced here. When the pool-pillars node.cpp lands (Phase B) it replaces the skeleton via a clean dgb-only re-cut off master. Scope: src/impl/dgb/ + the CMake target add only. No edits to src/impl/dash or src/impl/btc. Builds, links, and runs (--version / --help) verified locally.
The slice #4 skeleton reads only header constexpr constants from impl/dgb/config_{coin,pool}.hpp, but those headers include core/netaddress.hpp which pulls in <yaml-cpp/yaml.h>. The target linked only json + Boost, so the yaml-cpp include dir was absent and the dgb smoke build failed (fatal error: yaml-cpp/yaml.h: No such file). Link yaml-cpp::yaml-cpp for its include path only. Linking the full core library instead would drag in core/web_server.o + stratum_server.o and their merged/payout/hashrate/ltc symbols (the c2pool-btc self-link tangle) and pull Phase B forward; the skeleton needs no core symbols, so the header path alone is the minimal fix. Verified: c2pool-dgb compiles, links, and runs --version/--help locally.
This was referenced Jun 16, 2026
…the matrix Add dgb/slice4-skeleton to pull_request.branches in build.yml and coin-matrix.yml. The filter is read from the base branch copy, so PRs targeting this integration branch (#113 dgb/share-layer-port) otherwise never trigger. Additive only; per-coin source-presence guard unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Slice #4 (Option B per integrator): author a genuinely minimal compiling skeleton so
c2pool-dgbbuilds and links off current master, without dragging Phase B (pool pillars / PPLNS) forward.src/impl/dgb/node.cpp— skeletondgb::network_summary()+dgb::run_skeleton(). No DensePPLNSWindow / PPLNS / p2p run-loop (that body is M3 / Phase B).src/c2pool/main_dgb.cpp— stub entry (--version/--help/ banner), mirrorsmain_btc.cppshape pruned to a stub.src/impl/dgb/node.hpp— two skeleton declarations added.src/c2pool/CMakeLists.txt— newadd_executable(c2pool-dgb ...)target mirroringc2pool-btc.Why it links with no coin lib
The skeleton references no core/coin/pool/ltc symbols (only std + the header-only dgb config). So the target compiles
node.cppdirectly and links only json + Boost — it needs no coin lib and sidesteps thecore/web_serverself-link tangle that forcesc2pool-btcto drag in ltc/payout/merged. The top-level OBJECT-lib registration ofsrc/impl/dgb(ci-steward convention PR) is intentionally not raced here.Scope rails (per integrator)
src/impl/dgb/+ the CMake target add. Zero edits tosrc/impl/dash(X11 tree intact) andsrc/impl/btc.Verification (local)
cmake --build build --target c2pool-dgb→ links clean.c2pool-dgb --version/--help→ correct banner; network summary reads pool_p2p_port=5024, coin_p2p_port=12024, block_period=15s, gbt_algo=scrypt.Follow-up
When the pool-pillars
node.cpplands (Phase B), it replaces this skeleton via a clean dgb-only re-cut off master.HOLD: do not merge — master merge needs the operator tap; integrator routes.