Giter VIP home page Giter VIP logo

stratum's Introduction


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

  • SV1 Miners can use the translator proxy (roles/translator) to connect with a SV2-compatible pool.
  • 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<->SV2 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<->SV2 translation proxy implementation is a work in progress.)

๐Ÿ› ๏ธ Pools

  • 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.
  • The Rust helper library provides a suite of tools for mining pools to build custom SV2 compatible pool implementations.
  • The C library provides a set of FFI bindings to the Rust helper library for miners to integrate SV2 into their existing firmware stack.

๐Ÿ›ฃ 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: [email protected]

๐Ÿ™ 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

stratum's People

Contributors

4ss0 avatar bcral avatar ccdle12 avatar colefd avatar darricksee avatar djozis avatar douglaz avatar eunoia1729 avatar fi3 avatar gitgab19 avatar github-actions[bot] avatar jakubtrnka avatar kodylow avatar krisztiankurucz avatar lobarrel avatar lorbax avatar louneskmt avatar pavlenex avatar plebhash avatar priceless-p avatar rrybarczyk avatar rustynirvana avatar sjors avatar tusharv01 avatar unidenifieduser avatar vincenzopalazzo avatar xraid avatar

Forkers

gitgabpolito19

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.