Stratum v1 mining server core#102
Open
Boblepointu wants to merge 23 commits into
Open
Conversation
Add stratum protocol, config, worker, job, submit, stats and server modules to the server library, and wire the stratum unit test suite.
3 tasks
roqqit
reviewed
Apr 16, 2026
roqqit
reviewed
Apr 16, 2026
roqqit
reviewed
Apr 16, 2026
roqqit
reviewed
Apr 16, 2026
roqqit
reviewed
Apr 16, 2026
- Remove unrelated copyright header from src/rpc/mining.cpp - Replace flaky time.sleep(1) with wait_until on debug log in stratum test - Move stratum config log from AppInitServers to InitStratumServer call site - Add AssertLockHeld(m_cs) in HandleSubmit for thread-safety sanity - Add WIN32 compat for evthread (match httpserver.cpp pattern) - Replace POSIX socket headers with compat.h for cross-platform builds Made-with: Cursor
- Introduced a new HTML file for visualizing the dependency graph of pull requests. - Implemented a responsive design with SVG elements to represent PR statuses (open, ready, queued, draft). - Added a legend to explain the color coding of PR states. This visualization aids in understanding the current state of pull requests in the project.
47f7bba to
3bfaf9c
Compare
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
Embedded Stratum v1 mining server for doged, enabling pool-less solo mining directly from the node.
This is the foundational PR — later PRs will add upstream proxy routing, AuxPoW merge-mining RPCs, and multi-chain support on top.
What's included
stratumprotocol.{h,cpp}stratumconfig.{h,cpp}-stratum,-stratumbind,-stratumport,-stratumpassword,-stratumdiff,-coinbaseaddrCLI argsstratumworker.{h,cpp}stratumjob.{h,cpp}getblocktemplate, splits coinbase for extranonce, builds merkle branchesstratumsubmit.{h,cpp}stratumstats.{h,cpp}stratum.{h,cpp}init.cpplogging.{h,cpp}BCLog::STRATUMcategoryCMakeLists.txtsrc/stratum/test/*.cppstratum_basic.py-stratum=1, TCP connect, subscribe, authorizeArchitecture
Usage
Follow-up PRs (stacked)
createauxblock,submitauxblock)IAuxChainModuleTest plan
ninja check-stratum— 6 Boost unit test suites passtest/functional/stratum_basic.py— e2e subscribe + authorize-stratum=1, connect with any Stratum v1 miner, verify jobs receivedninja checkon existing test suites