Caution
π§ REPOSITORY UNDER MIGRATION - NOT READY FOR USE π§
This repository is part of an ongoing process to move applications outside of the main SRI repository. This repository will be rebased on top of the main repository and is subject to significant changes until the SRI 1.5.0 release.
This repository will be ready for use only after the SRI 1.5.0 release when the migration process is complete.
For stable, usable applications, please use the main SRI repository instead.
Introduction β’ Applications β’ Contribute β’ Support β’ Donate β’ Supporters β’ License MSRV
Welcome to the SV2 Applications repository, containing alpha-stage Stratum V2 implementations for both pool operators and miners from the Stratum V2 Reference Implementation (SRI) project.
This repository provides complete application suite implementing the Stratum V2 protocol, including pool server, job declaration server and client, translator proxy, and testing utilities - delivering enhanced efficiency, security, flexibility and decentralization for Bitcoin mining operations.
This repository contains a complete suite of SV2 applications for pool operators, miners, and developers organized in three workspaces:
- Pool Server (
pool/
) - SV2-compatible mining pool server that communicates with downstream roles and Template Providers - Job Declarator Server (
jd-server/
) - Coordinates job declaration between miners and pools, maintains synchronized mempool
- Job Declarator Client (
jd-client/
) - Allows miners to declare custom block templates for decentralized mining - Translator Proxy (
translator/
) - Bridges SV1 miners to SV2 pools, enabling protocol transition - Test Utilities (
test-utils/
) - Mining device simulators for development and testing
- End-to-End Tests (
integration-tests/
) - Comprehensive testing suite validating interoperability between all components
- Rust 1.75.0 or later
- For coverage analysis:
cargo install cargo-tarpaulin
# Builds pool-apps, miner-apps, and integration-tests workspaces
./scripts/build-all-workspaces.sh
# Runs clippy, tests, and formatting across all workspaces
./scripts/clippy-fmt-and-test.sh
# Creates coverage reports for all workspaces
./scripts/coverage-apps.sh
# Test publishing workflow
./scripts/publish-apps.sh --dry-run
# Publish all crates
./scripts/publish-apps.sh
For detailed development documentation, see scripts/README.md
.
Our roadmap is publicly available as part of the broader SRI project, outlining current and future plans. Decisions are made through a consensus-driven approach via dev meetings, Discord, and GitHub.
We welcome contributions to improve these pool applications! Here's how you can help:
- Start small: Check the good first issue label in the main SRI repository
- Join the community: Connect with us on Discord before starting larger contributions
- Open issues: Create GitHub issues for bugs, feature requests, or questions
- Follow standards: Ensure code follows Rust best practices and includes appropriate tests
Join our Discord community for technical support, discussions, and collaboration:
Join the Stratum V2 Discord Community
For detailed documentation and guides, visit: Stratum V2 Documentation
Support the development of Stratum V2 and these pool applications through OpenSats:
For corporate support and grants, contact us directly:
Email: [email protected]
SRI contributors are independently supported by these organizations:
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 Β Β·Β Main Repository stratum-mining/stratum