Minimize your risks, Maximize your resources.
Reduce the risk of performing work on incompatible blocks that will cause a network split.
Reduce the financial risks of mining with more than one software implementation.
Receive alerts about would-be incompatible blocks and receive a validated template in its place.
Operate confidently knowing your risks of incompatibility or orphaned blocks are minimal.
Reduce your risks of multi-node mining to near-zero.
The BitBalancer is a drop-in facade designed to interface with multiple BCH nodes.
By proxing all inbound requests and ensuring all mining-related RPC calls are in consensus with connected nodes, the BitBalancer reduces the risk of wasting resources on incompatibile blocks.
When a lack of consensus between nodes is encountered, a template matching the most peers is served and work can continue uninterrupted. If a block is available exceeding the highest ChainWork, a node building upon that chain will always be used.
To start, the BitBalancer is configured to connect to multiple supported node implementations.
All JSON-RPC (+ZMQ) requests are proxied to the "best" node.
Every cacheTemplateDuration seconds, the BitBalancer queries each node for a block template to ensure its current template is valid.
When a new block is announced, the BitBalancer immediately generates an empty template and notifies subscribers via ZMQ.
The BitBalancer then requests a new template from each node, once again ensuring the template is valid across all implementations.