stratum-mining / stratum

stratum
https://stratumprotocol.org
Other
191 stars 118 forks source link


SRI
Stratum V2 Reference Implementation (SRI)

SRI is a reference implementation of the Stratum V2 protocol written in Rust πŸ¦€.

codecov X (formerly Twitter) Follow

πŸ’Ό Table of Contents

Introduction β€’ Getting Started β€’ Use Cases β€’ Roadmap β€’ Contribute β€’ Support β€’ Donate β€’ Supporters β€’ License MSRV

πŸ‘‹ Introduction

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.

⛏️ Getting Started

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.

πŸš€ Use Cases

The library is modular to address different use-cases and desired functionality. Examples include:

πŸ‘· Miners

πŸ› οΈ Pools

πŸ›£ Roadmap

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.

View the SRI Roadmap

🎯 Goals

The goals of this project are to provide:

  1. 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
  2. The above Rust primitives as a C library available for use in other languages via FFI.
  3. 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.
  4. An open-source implementation of a SV2 proxy for miners.
  5. An open-source implementation of a SV2 pool for mining pool operators.

πŸ’» Contribute

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.

🀝 Support

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

🎁 Donate

πŸ‘€ Individual Donations

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.

Donate through OpenSats

🏒 Corporate Donations

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

πŸ™ Supporters

SRI contributors are independently, financially supported by following entities:

πŸ“– License

This software is licensed under Apache 2.0 or MIT, at your option.

πŸ¦€ MSRV

Minimum Supported Rust Version: 1.75.0


Website stratumprotocol.org  ·  Discord SV2 Discord  ·  Twitter @Stratumv2