The new update will enable the selection of transactions via a new sub-protocol and miners’ nodes.
A new reference implementation (SRI) update for Stratum v2 has been announced by developers of the protocol.
According to a press release sent to Bitcoin Magazine, the new update is “a major milestone in democratizing transaction selections in pooled mining and decentralizing bitcoin,” as it allows miners to select transactions via a new sub-protocol and their node.
The developers are inviting miners, pools, firmware makers and the community to test the new implementation using the getting starting guide they’ve put together, with CPU or actual mining devices. They also invite users’ feedback after testing using this form.
It is recommended that new users test the software using SV1 mining devices by connecting to an SV2 pool via Translation Proxy. “Miners will run their own template provider (bitcoind) with the max fee policy,” the release describes. “Within the translation proxy sits a Job Negotiator that runs a sub-protocol responsible for distributing miner’s templates to the pool.”
The press release describes how the Job Negotiator “in combination with a template provider, gives the responsibility back to miners or an independent third party to provide a new template (select transactions), thereby making bitcoin pool infrastructure more decentralized.”
According to the description of how a Job Negotiator (JN) works, the downstream mining farm runs a JN that connects to a JN run by the pool, and requests a unique identifier for mining jobs using the AllocateMiningJobToken message. The pool sends back a unique token and a coinbase output used for payouts. The downstream JN then connects to a template provider, which sends a new template and SetNewPrevHash to the downstream JN. With these, a new job can be constructed and the downstream JN sends a CommitMiningJob message containing a proposed set of transactions to the pool. The pool always accepts the miner’s proposal in the current iteration, but in the next release, miners will have the ability to fall back to a different pool or solo mine if the pool fails to accept transactions selected by the downstream’s template provider. The Translation Proxy then sends a SetCustomMiningJob message to the pool, which verifies the work and sends back a SetCustomMiningJobSuccess message. The Translation Proxy then translates the message and sends the mining.notify message to mining devices, which submit shares to the pool through the Translation Proxy.
With the current industry-adopted mining protocol Stratum V1, the handful of mining pools participates in transaction selection, which makes bitcoin more prone to censorship. Stratum v2 is an updated protocol, which ensures that transaction selection is done by miners themselves.
The community has already tested the software on several popular mining devices; the press release encourages anyone who tests on different platforms to fill a form out.
“With the next update,” the press release says, “we will add a fallback functionality that would allow miners to fall back to a different pool or solo mine in case the pool chooses not to accept their suggestion. Miners would, in that case, disconnect and fall back.”
Other updates include the aim to improve encryption and ensure compliance with the latest spec updates, in addition to plans to enable pools to perform spot-checks on block validity. The most significant development will be submitting a pull request for the template provider in Bitcoin Core.