Skip to content

dash: sharechain pool-node wire-message layer (S8 pool-node leaf 2) - #582

Merged
frstrtr merged 2 commits into
masterfrom
dash/s8-poolnode-messages
Jul 2, 2026
Merged

dash: sharechain pool-node wire-message layer (S8 pool-node leaf 2)#582
frstrtr merged 2 commits into
masterfrom
dash/s8-poolnode-messages

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

S8 pool-node leaf 2 of N (after peer #580). Adds the DASH sharechain pool-node wire-message envelope — the layer btc/dgb/ltc carry but DASH lacked, blocking the full gate (b) bind/dial-crosses-shares path.

What

  • src/impl/dash/messages.hpp — namespace-dash port of the shared p2pool-family messages layer (src/impl/ltc/messages.hpp): version/ping/addrme/getaddrs/addrs/shares/sharereq/sharereply/have_tx + pool-node dispatch type-list. Envelope is byte-parity with the family; share VERSION/transition (16->36) lives inside chain::RawShare, not the frame, so the wire contract is coin-uniform.
  • test/test_dash_poolnode_messages.cpp — 10 KATs (per-message pack/make round-trips + Handler type-list instantiation). 10/10 green, non-hollow, on Linux x86_64.

Fence: strictly src/impl/dash/ + additive test wiring (CMakeLists add_executable/link + build.yml allowlist x2). No bitcoin_family/src/core/other-coin touch. peer.hpp coverage stays in #580 (test_dash_peer); this leaf is independent of peer.hpp in code.

Leaf plan: peer (#580) -> messages (this) -> share_messages -> share_tracker -> node. Independently mergeable off master; allowlist unions trivially with #580.

GPG-signed 4e8a7bc. Held for integrator verify + operator tap — no self-merge.

DASH lacked the p2pool sharechain pool-node wire layer that btc/dgb/ltc
all carry. This is leaf 2 (after peer #580): the message envelope itself.

src/impl/dash/messages.hpp — namespace dash port of the shared p2pool-family
messages layer (src/impl/ltc/messages.hpp): version/ping/addrme/getaddrs/
addrs/shares/sharereq/sharereply/have_tx BEGIN_MESSAGE definitions + the
pool-node dispatch type-list. The envelope is byte-parity with the family
layer; share VERSION/transition (16->36) lives inside chain::RawShare, not
the message frame, so the pool-node wire contract is coin-uniform. Mirrors
the analog; no new contract invented.

test/test_dash_poolnode_messages.cpp — 10 KATs: per-message pack/make
round-trips (version field-by-field, ping empty, addrme LE-layout pin,
getaddrs, addrs, v16+v36 shares envelope, sharereq, sharereply enum,
have_tx) + Handler type-list instantiation. 10/10 green, non-hollow.

Strictly fenced to src/impl/dash/ + additive test wiring (CMakeLists
add_executable/link + build.yml allowlist x2); no bitcoin_family/src/core/
other-coin touch. peer.hpp coverage stays in #580 (test_dash_peer).
@frstrtr
frstrtr force-pushed the dash/s8-poolnode-messages branch from 4e8a7bc to a9db540 Compare June 27, 2026 19:42
@frstrtr
frstrtr merged commit a829942 into master Jul 2, 2026
22 checks passed
frstrtr added a commit that referenced this pull request Jul 2, 2026
…resh vs #582/#587/#592/#605 landings

ctest allowlist union in build.yml: test_dash_poolnode_messages (from #582)
+ test_dash_share_tracker + test_dash_node. Core null-io fix now also in
master via #605 (identical); merge collapses the duplicate. Sources auto-merged.
frstrtr added a commit that referenced this pull request Jul 2, 2026
/#592/#605 landings

ctest allowlist union: test_dash_poolnode_messages (from #582) + test_dash_peer.
Sources auto-merged; re-runs the stale (pre-runner-reset) CodeQL c-cpp.
frstrtr added a commit that referenced this pull request Jul 2, 2026
…efresh vs #582/#587/#592/#605 landings

ctest allowlist union: test_dash_poolnode_messages (from #582) + test_dash_share_messages.
Sources auto-merged; re-runs the stale (pre-runner-reset) CodeQL c-cpp.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant