Skip to content
This repository was archived by the owner on Mar 6, 2023. It is now read-only.
This repository was archived by the owner on Mar 6, 2023. It is now read-only.

Possible feature: mining.submitfull() network message with full coinbase tx #13

@jtoomim

Description

@jtoomim

I am working with a few pools to add a new feature to their pool system. I described a simplified version of this feature in my talk at Scaling Bitcoin:

http://toom.im/files/Jonathan_Toomim_BIP101_block_progapation_on_testnet.pdf page 23

https://www.youtube.com/watch?v=ivgxcEOyWNs&feature=youtu.be&t=2h46m00s

The basic idea is to use what is essentially a stratum proxy to cross the Great Firewall of China so that full blocks never have to cross the Firewall, at least not in the latency-critical path. Pools would operate bitcoind servers abroad which perform getblocktemplate, and send the summarized results to the poolserver via a slightly enhanced version of stratum.

The issue with this approach is that we don't trust the servers abroad to honestly enter the coinbase output address and the rest of the coinbase transaction. What we want to do is generate the whole coinbase transaction on the trusted poolserver in China. Currently we can do that, no problem, but we don't have an interface for submitting the new coinbase transaction back to our servers abroad when we submit the job via stratum.

What I would like to add is another function, say mining.submitfull(...) that includes the full coinbase tx instead of just the extranonce info. This extended interface should be disabled by default (lest a pool accept work that didn't pay the pool at all).

We can write the code for this on our own. The question I have for you is this: if we implemented this and submitted a pull request, do you think this is the kind of feature you would like to see in this project, or do you think it's better that we just maintain it as a fork?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions