An open API service indexing awesome lists of open source software.

https://github.com/stratum-mining/sv2-apps


https://github.com/stratum-mining/sv2-apps

Last synced: 9 months ago
JSON representation

Awesome Lists containing this project

README

          




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](https://github.com/stratum-mining/stratum). **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](https://github.com/stratum-mining/stratum) when the migration process is complete.**
>
> For stable, usable applications, please use the main [SRI repository](https://github.com/stratum-mining/stratum) 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)](https://github.com/stratum-mining/stratum) project.

This repository provides complete application suite implementing the [Stratum V2 protocol](https://stratumprotocol.org), 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
```bash
# Builds pool-apps, miner-apps, and integration-tests workspaces
./scripts/build-all-workspaces.sh
```

### Run Tests and Linting
```bash
# Runs clippy, tests, and formatting across all workspaces
./scripts/clippy-fmt-and-test.sh
```

### Generate Coverage Reports
```bash
# Creates coverage reports for all workspaces
./scripts/coverage-apps.sh
```

### Publish to crates.io (Maintainers)
```bash
# Test publishing workflow
./scripts/publish-apps.sh --dry-run

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

For detailed development documentation, see [`scripts/README.md`](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](https://github.com/orgs/stratum-mining/projects/5)

## ๐Ÿ’ป Contribute

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

1. **Start small**: Check the [good first issue label](https://github.com/stratum-mining/stratum/labels/good%20first%20issue) in the main SRI repository
2. **Join the community**: Connect with us on [Discord](https://discord.gg/fsEW23wFYs) before starting larger contributions
3. **Open issues**: [Create GitHub issues](https://github.com/stratum-mining/stratum/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](https://discord.gg/fsEW23wFYs)

For detailed documentation and guides, visit:
[Stratum V2 Documentation](https://stratumprotocol.org)

## ๐ŸŽ Donate

### ๐Ÿ‘ค Individual Donations
Support the development of Stratum V2 and these pool applications through OpenSats:

[Donate through OpenSats](https://opensats.org/projects/stratumv2)

### ๐Ÿข Corporate Donations
For corporate support and grants, contact us directly:

Email: stratumv2@gmail.com

## ๐Ÿ™ 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](https://www.stratumprotocol.org) ย ยทย 
> Discord [SV2 Discord](https://discord.gg/fsEW23wFYs) ย ยทย 
> Twitter [@Stratumv2](https://twitter.com/StratumV2) ย ยทย 
> Main Repository [stratum-mining/stratum](https://github.com/stratum-mining/stratum)