Introduction โข Getting Started โข Use Cases โข Roadmap โข Contribute โข Support โข Donate โข Supporters โข License MSRV
Welcome to the official GitHub repository for the SRI - Stratum V2 Reference Implementation.
Stratum V2 is a next-generation bitcoin mining protocol designed to enhance the efficiency, security, flexibility and decentralization. SRI is fully open-source, community-developed, independent of any single entity, aiming to be fully compatible with Stratum V2 Specification.
To get started with the Stratum V2 Reference Implementation (SRI), please follow the detailed setup instructions available on the official website:
Getting Started with Stratum V2
This guide provides all the necessary information on prerequisites, installation, and configuration to help you begin using, testing or contributing to SRI.
The library is modular to address different use-cases and desired functionality. Examples include:
- SV1 Miners can use the translator proxy (
roles/translator
) to connect with a SV2-compatible pool. - SV1 mining farms mining to a SV2-compatible pool gain some of the security and efficiency improvements SV2 offers over Stratum V1 (SV1). The SV1<->SV2 translator proxy does not support all the features of SV2, but works as a temporary measure before upgrading completely to SV2-compatible firmware. (The SV1<->SV2 translation proxy implementation is a work in progress.)
- Pools supporting SV2 can deploy the open source binary crate (
roles/pool
) to offer their clients (miners participating in said pool) an SV2-compatible pool. - The Rust helper library provides a suite of tools for mining pools to build custom SV2 compatible pool implementations.
- The C library provides a set of FFI bindings to the Rust helper library for miners to integrate SV2 into their existing firmware stack.
Our roadmap is publicly available, outlining current and future plans. Decisions on the roadmap are made through a consensus-driven approach, through participation on dev meetings, Discord or GitHub.
Low-level crates (protocols
directory) are considered beta software. Rust API Docs is a work-in-progress, and the community should still expect small breaking API changes and patches.
Application-level crates (roles
directory) are considered alpha software, and bugs are expected. They should be used as a guide on how to consume the low-level crates as dependencies.
The goals of this project are to provide:
- A robust set of Stratum V2 (SV2) primitives as Rust library crates which anyone can use
to expand the protocol or implement a role. For example:
- Pools supporting SV2
- Mining-device/hashrate producers integrating SV2 into their firmware
- Bitcoin nodes implementing Template Provider to build the
blocktemplate
- The above Rust primitives as a C library available for use in other languages via FFI.
- A set of helpers built on top of the above primitives and the external Bitcoin-related Rust crates for anyone to implement the SV2 roles.
- An open-source implementation of a SV2 proxy for miners.
- An open-source implementation of a SV2 pool for mining pool operators.
If you are a developer looking to help, but you're not sure where to begin, check the good first issue label, which contains small pieces of work that have been specifically flagged as being friendly to new contributors.
Contributors looking to do something a bit more challenging, before opening a pull request, please join our community chat or start a GitHub issue to get early feedback, discuss the best ways to tackle the problem, and ensure there is no work duplication and consensus.
Join our Discord community to get help, share your ideas, or discuss anything related to Stratum V2 and its reference implementation.
Whether you're looking for technical support, want to contribute, or are just interested in learning more about the project, our community is the place to be.
Join the Stratum V2 Discord Community
If you wish to support the development and maintenance of the Stratum V2 Reference Implementation, individual donations are greatly appreciated. You can donate through OpenSats, a 501(c)(3) public charity dedicated to supporting open-source Bitcoin projects.
For corporate entities interested in providing more substantial support, such as grants to SRI contributors, please get in touch with us directly. Your support can make a significant difference in accelerating development, research, and innovation.
Email us at: stratumv2@gmail.com
SRI contributors are independently, financially supported by following entities:
This software is licensed under Apache 2.0 or MIT, at your option.
Minimum Supported Rust Version: 1.75.0
Website stratumprotocol.org ยท Discord SV2 Discord ยท Twitter @Stratumv2