dgb: Phase B pool wire-message layer (messages, share_messages) — Scrypt-only - #115
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.
…only divergence from ltc; Formatter byte-parity with p2pool-merged-v36 preserved
…-only Pool/share layer slice 1 on family-1 foundation, stacked on share-layer pillars (#113). Namespace-only divergence from src/impl/ltc; the SHA256/ HMAC-SHA256/ECDSA in share_messages is the PoW-algo-independent p2pool message-signing layer (not Scrypt block PoW). Wire/message format byte- parity with p2pool-merged-v36 preserved. Unblocks share_check/share_tracker port (next slice).
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.
Phase B pool/share layer, slice 1 on the family-1 foundation. Stacked on share-layer pillars (#113), which is stacked on the skeleton (#112).
What
Ports the pool wire-message layer into
src/impl/dgb/:messages.hpp(191L) — pool P2P message definitionsshare_messages.hpp(579L) — V36 share-embedded messaging (decrypt + validate + ECDSA sign)Divergence from ltc
Namespace-only (
ltc→dgb). The SHA256/HMAC-SHA256/ECDSA inshare_messagesis the PoW-algo-independent p2pool message-signing layer (not the Scrypt block PoW) — identical across coins. Wire/message format byte-parity with p2pool-merged-v36 preserved.Next slice
Unblocks
share_check.hpp+share_tracker.hpp(carry DGB consensus constants, e.g. SEGWIT_ACTIVATION_VERSION — needs farsider350 byte-parity verification, separate slice).Merge posture
HOLD — integrator merges on operator approval. Stacked: merge #112 → #113 → this, in order.
GPG-signed (8da2172).