Added local work generation via RPC and GridPool integration#1702
Added local work generation via RPC and GridPool integration#1702keegreil wants to merge 1 commit into
Conversation
|
I don't fully understand this grid protocol yet but my intuition says it is vulnerable to cheaters on both sides. Besides the gridpool stuff, Bitcoin rpc template support would be cool for pool-free solo mining using bitcoin core. |
|
Just dropping a friendly opinion, not blocking anything. I see the Bitaxe as a deliberately minimal sovereign hashing device — open firmware, no vendor coupling, the user picks where their hashes go. The SV1 / SV2 layers in the firmware match that — speak a documented protocol, talk to whatever pool you choose. This PR mixes two things into one. The first one is sovereign local template mining: Bitaxe pulls The second thing is GridPool Boot HTTP integration — polling a specific external service (gridpool.net, currently a developer preview run by a single operator) for payout lists and share advice, and submitting high-difficulty shares to that service's HTTP API. The first part is on-mission imo. The second part isn't, really. It ties the firmware to one specific operator's experimental service, with code paths, settings, dashboard widgets and a 391-line OpenAPI extension all named after that vendor. The day GridPool changes its protocol, goes offline, or the dev-preview gets deprecated, that's ~4-5k lines of firmware code that ages out. Every Bitaxe user carries those paths in their flash, including users who'll never have heard of the service. That's maintenance and security surface paid by the whole user base for a vendor-specific feature. It also kind of sets a precedent — if GridPool's HTTP API gets first-class firmware support, what's the principled answer when the next single-operator pool wants the same. The cleaner architectural place for vendor-specific HTTP layers feels like a small adapter daemon next to the user's Bitcoin node. Same trust model, zero firmware bloat, benefits non-Bitaxe miners too. One thing to flag if anyone goes the "just extract the solo part" route: even though Solo Yolo doesn't make network calls to GridPool at runtime, all the code paths (file names, function namespace, NVS keys, REST API fields) are GridPool-branded. Splitting it out would require a refactor — renaming Anyway, just my 2 sats. |
Thanks! For Gridpool, I really need to write a more succint description. You could start here if you are interested: If you figure out a way to cheat please let me know! |
|
@warioishere Thanks for reviewing and for your thorough feedback! I think I agree with everything you said. This is just a few more explanations to fine tune the discussion: First: this PR does mix two things, and in hindsight I agree they should be separated for all the reasons you mentioned and more. So I think I'll rip the Gridpool stuff out and resubmit at some point, including making sure the Gridpool branding isn't in the local work generation path, that's good feedback. Local Work Generation:
Gridpool integration: Certainly if we ever want to integrate Gridpool, it makes sense to wait until it's actually launched, and perhaps only included as an experimental feature until it's more mature. [In the image below, this PR is related to the two dashed lines]
|
|
I've separated out the two components of this PR, and submitted the first (local work generation only) in this separate PR: Closing this PR as it's no longer recommended or needed. |

Adds initial GridPool Direct support for local Bitcoin RPC template fetching, ESP32 work generation, GridPool share submission, and direct
submitblock handling for found blocks.
Includes:
Still draft; more cleanup and review expected.