{"id":24144544,"url":"https://github.com/stratum-mining/stratum","last_synced_at":"2025-05-14T13:03:44.307Z","repository":{"id":38082036,"uuid":"339173074","full_name":"stratum-mining/stratum","owner":"stratum-mining","description":"stratum","archived":false,"fork":false,"pushed_at":"2025-05-09T00:49:58.000Z","size":119569,"stargazers_count":267,"open_issues_count":131,"forks_count":153,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-05-09T01:34:26.688Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://stratumprotocol.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stratum-mining.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-15T18:42:04.000Z","updated_at":"2025-05-09T00:50:03.000Z","dependencies_parsed_at":"2023-10-16T06:25:39.380Z","dependency_job_id":"dc52f232-bd8a-43ac-aad9-6686b0ba96fe","html_url":"https://github.com/stratum-mining/stratum","commit_stats":{"total_commits":713,"total_committers":30,"mean_commits":"23.766666666666666","dds":0.5750350631136045,"last_synced_commit":"51dd6b305a33f49485288714c70773bdb74e90e5"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fstratum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fstratum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fstratum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratum-mining%2Fstratum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stratum-mining","download_url":"https://codeload.github.com/stratum-mining/stratum/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149819,"owners_count":22022850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-12T06:11:52.224Z","updated_at":"2025-05-14T13:03:44.207Z","avatar_url":"https://github.com/stratum-mining.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://stratumprotocol.org\"\u003e\u003cimg src=\"https://github.com/stratum-mining/stratumprotocol.org/blob/660ecc6ccd2eca82d0895cef939f4670adc6d1f4/src/.vuepress/public/assets/stratum-logo%402x.png\" alt=\"SRI\" width=\"200\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\nStratum V2 Reference Implementation (SRI)\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003eSRI is a reference implementation of the Stratum V2 protocol written in Rust 🦀.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://codecov.io/gh/stratum-mining/stratum\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/stratum-mining/stratum/branch/main/graph/badge.svg\" alt=\"codecov\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/intent/follow?screen_name=stratumv2\"\u003e\n    \u003cimg src=\"https://img.shields.io/twitter/follow/stratumv2?style=social\" alt=\"X (formerly Twitter) Follow\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## 💼 Table of Contents\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-introduction\"\u003eIntroduction\u003c/a\u003e •\n  \u003ca href=\"#%EF%B8%8F-getting-started\"\u003eGetting Started\u003c/a\u003e •\n  \u003ca href=\"#-use-cases\"\u003eUse Cases\u003c/a\u003e •\n  \u003ca href=\"#-roadmap\"\u003eRoadmap\u003c/a\u003e •\n  \u003ca href=\"#-contribute\"\u003eContribute\u003c/a\u003e •\n  \u003ca href=\"#-support\"\u003eSupport\u003c/a\u003e •\n  \u003ca href=\"#-donate\"\u003eDonate\u003c/a\u003e •\n  \u003ca href=\"#-supporters\"\u003eSupporters\u003c/a\u003e •\n  \u003ca href=\"#-license\"\u003eLicense\u003c/a\u003e \n  \u003ca href=\"#-msrv\"\u003eMSRV\u003c/a\u003e\n\u003c/p\u003e\n\n## 👋 Introduction\n\nWelcome to the official GitHub repository for the **SRI - Stratum V2 Reference Implementation**. \n\n[Stratum V2](https://stratumprotocol.org) is a next-generation bitcoin mining protocol designed to enhance the efficiency, security, flexibility and decentralization. \nSRI is fully open-source, community-developed, independent of any single entity, aiming to be fully compatible with [Stratum V2 Specification](https://github.com/stratum-mining/sv2-spec).\n\n## ⛏️ Getting Started\n\nTo get started with the Stratum V2 Reference Implementation (SRI), please follow the detailed setup instructions available on the official website:\n\n[Getting Started with Stratum V2](https://stratumprotocol.org/getting-started/)\n\nThis guide provides all the necessary information on prerequisites, installation, and configuration to help you begin using, testing or contributing to SRI.\n\n## 🚀 Use Cases\n\nThe library is modular to address different use-cases and desired functionality. Examples include:\n\n### 👷 Miners\n\n- SV1 Miners can use the translator proxy (`roles/translator`) to connect with a SV2-compatible pool.\n- 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\u003c-\u003eSV2 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\u003c-\u003eSV2 translation proxy implementation is a work in progress.)\n\n### 🛠️ Pools\n\n- 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.\n- The Rust helper library provides a suite of tools for mining pools to build custom SV2 compatible pool implementations.\n- The C library provides a set of FFI bindings to the Rust helper library for miners to integrate SV2 into their existing firmware stack.\n\n## 🛣 Roadmap \n\nOur 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.\n\n[View the SRI Roadmap](https://github.com/orgs/stratum-mining/projects/5)\n\n### 🏅 Project Maturity\n\nLow-level crates (`protocols` directory) are considered **beta** software. Rust API Docs is a [work-in-progress](https://github.com/stratum-mining/stratum/issues/845), and the community should still expect small breaking API changes and patches.\n\nApplication-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.\n\n### 🎯 Goals\n\nThe goals of this project are to provide:\n\n1. A robust set of Stratum V2 (SV2) primitives as Rust library crates which anyone can use\n   to expand the protocol or implement a role. For example:\n   - Pools supporting SV2\n   - Mining-device/hashrate producers integrating SV2 into their firmware\n   - Bitcoin nodes implementing Template Provider to build the `blocktemplate`\n2. The above Rust primitives as a C library available for use in other languages via FFI.\n3. 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.\n4. An open-source implementation of a SV2 proxy for miners.\n5. An open-source implementation of a SV2 pool for mining pool operators.\n\n## 💻 Contribute \n\nIf you are a developer looking to help, but you're not sure where to begin, check the [good first issue label](https://github.com/stratum-mining/stratum/labels/good%20first%20issue), which contains small pieces of work that have been specifically flagged as being friendly to new contributors.\n\nContributors looking to do something a bit more challenging, before opening a pull request, please join [our community chat](https://discord.gg/fsEW23wFYs) or [start a GitHub issue](https://github.com/stratum-mining/stratum/issues) to get early feedback, discuss the best ways to tackle the problem, and ensure there is no work duplication and consensus.\n\n## 🤝 Support\n\nJoin our Discord community to get help, share your ideas, or discuss anything related to Stratum V2 and its reference implementation. \n\nWhether 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.\n\n[Join the Stratum V2 Discord Community](https://discord.gg/fsEW23wFYs)\n\n## 🎁 Donate\n\n### 👤 Individual Donations \nIf 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.\n\n[Donate through OpenSats](https://opensats.org/projects/stratumv2)\n\n### 🏢 Corporate Donations\nFor 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.\n\nEmail us at: stratumv2@gmail.com\n\n## 🙏 Supporters\n\nSRI contributors are independently, financially supported by following entities: \n\n\u003cp float=\"left\"\u003e\n  \u003ca href=\"https://hrf.org\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/stratum-mining/stratumprotocol.org/main/src/.vuepress/public/assets/hrf-logo-boxed.svg\" width=\"250\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://spiral.xyz\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/stratum-mining/stratumprotocol.org/main/src/.vuepress/public/assets/Spiral-logo-boxed.svg\" width=\"250\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://opensats.org/\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/stratum-mining/stratumprotocol.org/main/src/.vuepress/public/assets/opensats-logo-boxed.svg\" width=\"250\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://vinteum.org/\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/stratum-mining/stratumprotocol.org/main/src/.vuepress/public/assets/vinteum-logo-boxed.png\" width=\"250\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## 📖 License\nThis software is licensed under Apache 2.0 or MIT, at your option.\n\n## 🦀 MSRV\nMinimum Supported Rust Version: 1.75.0\n\n---\n\n\u003e Website [stratumprotocol.org](https://www.stratumprotocol.org) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e Discord [SV2 Discord](https://discord.gg/fsEW23wFYs) \u0026nbsp;\u0026middot;\u0026nbsp;\n\u003e Twitter [@Stratumv2](https://twitter.com/StratumV2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratum-mining%2Fstratum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstratum-mining%2Fstratum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratum-mining%2Fstratum/lists"}