Skip to content

stratum-mining/sv2-apps


SRI
SV2 Applications

Stratum V2 pool and miner applications from the SRI project πŸ¦€

codecov X (formerly Twitter) Follow

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.

⚠️ DO NOT USE THIS REPOSITORY YET - it may contain outdated code, broken functionality, or be completely restructured without notice.

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.

πŸ’Ό Table of Contents

Introduction β€’ Applications β€’ Contribute β€’ Support β€’ Donate β€’ Supporters β€’ License MSRV

πŸ‘‹ Introduction

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.

πŸ—οΈ Applications

This repository contains a complete suite of SV2 applications for pool operators, miners, and developers organized in three workspaces:

🏊 Pool Applications (pool-apps/)

  • 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

⛏️ Miner Applications (miner-apps/)

  • 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

πŸ§ͺ Integration Tests (test/)

  • End-to-End Tests (integration-tests/) - Comprehensive testing suite validating interoperability between all components

βš™οΈ Development & Building

Prerequisites

  • Rust 1.75.0 or later
  • For coverage analysis: cargo install cargo-tarpaulin

Build All Applications

# Builds pool-apps, miner-apps, and integration-tests workspaces
./scripts/build-all-workspaces.sh

Run Tests and Linting

# Runs clippy, tests, and formatting across all workspaces
./scripts/clippy-fmt-and-test.sh

Generate Coverage Reports

# Creates coverage reports for all workspaces
./scripts/coverage-apps.sh

Publish to crates.io (Maintainers)

# Test publishing workflow
./scripts/publish-apps.sh --dry-run

# Publish all crates
./scripts/publish-apps.sh

For detailed development documentation, see scripts/README.md.

πŸ›£ Roadmap

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.

View the SRI Roadmap

πŸ’» Contribute

We welcome contributions to improve these pool applications! Here's how you can help:

  1. Start small: Check the good first issue label in the main SRI repository
  2. Join the community: Connect with us on Discord before starting larger contributions
  3. Open issues: Create GitHub issues for bugs, feature requests, or questions
  4. Follow standards: Ensure code follows Rust best practices and includes appropriate tests

🀝 Support

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

🎁 Donate

πŸ‘€ Individual Donations

Support the development of Stratum V2 and these pool applications through OpenSats:

Donate through OpenSats

🏒 Corporate Donations

For corporate support and grants, contact us directly:

Email: [email protected]

πŸ™ Supporters

SRI contributors are independently supported by these organizations:

πŸ“– 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 Β Β·Β  Main Repository stratum-mining/stratum

About

No description, website, or topics provided.

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE.md
Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9