Learn how getblocktemplate required rules, vbavailable, vbrequired and the rules array keep Bitcoin pool templates aligned with active consensus changes.
TL;DR
The getblocktemplate RPC gives mining software the data needed to construct a candidate block. A client can list soft-fork deployment names it supports in the request’s rules array. During a version-bits deployment, vbavailable maps pending deployment names to their bit numbers. vbrequired is a bit mask for version bits the server requires in submitted blocks.
What this means in simple English
This article explains one practical mining decision. Read the simple point first, then use the detailed sections when you need them.
Simple example
Think of it as a checklist before a large purchase. The answer is useful only when the facts, costs and risks have been checked.
Key terms in plain English
- BIP:
- Bitcoin Improvement Proposal: a document that suggests or explains a change to Bitcoin. A BIP number does not mean the idea is active.
- Consensus:
- The shared rules that Bitcoin or another network uses to decide whether blocks and transactions are valid.
- Node:
- A computer running network software that checks data and talks to other computers on the network.
- ASIC:
- A computer built to do one specialised job. A mining ASIC is designed for a particular proof-of-work algorithm.
- Mining pool:
- A service that combines work from many miners and shares rewards using stated rules.
What getblocktemplate provides
The getblocktemplate RPC gives mining software the data needed to construct a candidate block. BIP22 replaced the older idea of a node supplying only a header with a richer template containing the previous block hash, target, transactions, time, height and coinbase information. The miner or pool can customise permitted fields, then submit a completed block for validation.
Start with the validating node, because the ASIC only hashes the candidate header it receives. Record the node release and the pool component that assembled the block. If those facts are unknown, the operator cannot show which rules were actually applied before electricity was committed to the work.
The rules request field
A client can list soft-fork deployment names it supports in the request’s rules array. The server returns active rules in its response. Names prefixed with an exclamation mark identify changes that affect template use in a way the client must understand. If a client does not understand such a required rule, it must not process or mine that template.
Treat status dashboards as observations, not as the source of truth. Compare them with an independently operated node and retain the raw deployment or template response. Period boundaries, chain reorganisations and cached pool pages can otherwise make a correct-looking percentage describe the wrong state.
vbavailable and version bits
During a version-bits deployment, vbavailable maps pending deployment names to their bit numbers. A miner may adjust available bits within the specification’s limits. The returned version remains the server’s preference. Blindly replacing the whole version value can erase required signalling, collide with another deployment or make later diagnostics impossible.
Build the failure response before the boundary arrives. Define which rejection messages trigger an alert, who can pause a template source and how failover is prevented from returning miners to the same faulty validation stack. A second hostname is not independent when both endpoints share one node.
What vbrequired means
vbrequired is a bit mask for version bits the server requires in submitted blocks. BIP8 specifies that servers set it during MUST_SIGNAL. A client may only clear a bit offered in vbavailable when it is not also required. This is a machine-readable safety boundary between flexible version rolling and a candidate the validating server will reject.
Separate readiness, signalling and enforcement in the operating log. Readiness is a claim about software and process, signalling is data carried by blocks, and enforcement is a validation result. Combining them into a single supported or unsupported label hides the point at which revenue is actually at risk.
Why active rules affect block construction
Some upgrades change more than transaction validity. SegWit added a witness commitment to the coinbase transaction and changed transaction-identification details. BIP145 updated getblocktemplate so a capable client can request and correctly construct SegWit blocks. A hashing device that knows only a header cannot solve missing coinbase commitments. the template layer must build them correctly first.
Map responsibility across the full path: validating node, template server, pool protocol, proxy, firmware and ASIC. For each layer, state what it can alter and what it merely relays. This prevents a version-bit setting in firmware from being mistaken for complete consensus-rule support. Relate that responsibility map to the pool and job-control boundary in our Stratum V2 guide.
Template, proposal and submitblock
Template mode asks for work. Proposal mode lets software validate a proposed block without submitting it to the peer network, where supported. submitblock sends a completed block and returns a rejection reason or null on acceptance. Pools should retain these results because an accepted share is not necessarily a valid network block, and a valid-looking hash can still fail consensus or construction checks.
Test the primary and failover paths with the same checks. Compare chain tip, chainwork, deployment state, required rules and template age, then save the result with a timestamp. The process should be repeatable by another operator without relying on an undocumented pool conversation.
Monitoring a production template stack
Log the node version, best block hash, rules, vbavailable, vbrequired, target and template age. Alert when redundant providers disagree, a required rule is unknown or long polling stops updating work. Test failover using real schema checks rather than a port probe. For decentralised job selection, also document which component chooses transactions and which validating node performs final proposal checks.
Turn the conclusion into a business decision. State which chain and settlement venues the operation intends to serve, the maximum acceptable stale-block exposure and the point at which mining pauses. This connects protocol evidence to electricity cost, pool revenue and payout finality.
Operator decision record
A concise decision record for getblocktemplate required rules should name the source documents, their dates, the node release tested, the responsible pool or template provider and the exact trigger for action. Include screenshots or machine-readable output for the deployment state. But keep the raw node response as the stronger evidence.
State whether a change affects policy, block construction or consensus validity, because those layers have different failure costs.
Run the check on every production and failover path. Confirm that monitoring alerts on stale templates, unexpected chain tips, rejected proposals and a rise in stale shares. Keep rollback instructions for node and pool configuration. But do not roll back across an active consensus boundary without understanding the rules the older release enforces.
If the evidence conflicts, pause the affected path and investigate before committing more electricity to uncertain work.
For related background, read our plain-English BIP-110 guide and technical BIP-110 review. Those articles use a modern proposal to show why signalling, activation, template construction and accepted chain history must be examined separately.
Conclusion
Getblocktemplate required rules is best understood as a defined interaction between validating software, mining infrastructure and economic acceptance. The safest operator does not infer consensus from a dashboard percentage or a pool slogan. They verify the rule source, the activation boundary, the template fields and the chain their payouts ultimately settle on. That discipline reduces the chance of hashing an invalid or commercially unwanted block.
Frequently asked questions
What is getblocktemplate required rules?
getblocktemplate required rules is the practical decision explained in this guide. Begin with the simple summary, then check the evidence behind the detailed answer.
Why does getblocktemplate required rules matter?
It can affect safety, cost, compatibility or the reliability of a mining decision. The important factor depends on the real equipment and situation.
What should I check before acting on getblocktemplate required rules?
Check the source date, exact hardware or service, measured power and performance, full costs, current official information and the main failure risks.
Does getblocktemplate required rules guarantee a profit or result?
No. Mining revenue, network conditions, equipment performance and costs can change. Use a cautious estimate and test a worse case before committing money.
Primary sources
- BIP 22: getblocktemplate fundamentals
- BIP 145: getblocktemplate updates for SegWit
- BIP 9: getblocktemplate changes
Primary specifications are living technical records. Check their current status and changelog before using this article for a production activation decision.
