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

https://github.com/tetherto/m-sdk-be


https://github.com/tetherto/m-sdk-be

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

          

# MiningSDK
**Open, Modular Infrastructure for Bitcoin Mining at Any Scale**

---

## About MiningSDK

The Bitcoin mining industry has long been constrained by **closed systems, proprietary tooling, and vendor lock-in**. MiningSDK changes that.

MiningSDK introduces **openness, transparency, and modularity** into mining infrastructure. Built on open protocols and a composable architecture, it empowers operators and developers to build, operate, and scale mining operations with full control.

MiningSDK delivers a modern, professional mining software stack with:
- Intuitive operational workflows
- Real-time monitoring and control
- Production-grade scalability
- Full transparency into system behavior

From a **single device** to **gigawatt-scale facilities**, MiningSDK adapts without architectural rewrites.

---

## What is MiningSDK?

MiningSDK is a **JavaScript-based backend SDK** that provides a modular, extensible foundation for:
- Monitoring mining infrastructure
- Controlling devices and containers
- Collecting telemetry and operational data
- Building custom mining applications and integrations

MiningSDK acts as a **common operating layer** for the mining industry.

---

## Core Characteristics

| Capability | Description |
|---------------------------|-----------------------------------------------------------------------------|
| **Portability** | Runs on Windows, macOS, and Linux |
| **Device Agnostic** | Supports miners, containers, sensors, power meters, and more |
| **Real-Time Monitoring** | Sub-minute data collection and alerting |
| **Persistent Storage** | Time-series storage using Hyperbee |
| **Scalable by Design** | From a single miner to thousands of devices |
| **Open Source** | Apache 2.0 licensed — no vendor lock-in |

---

## Core Philosophy

MiningSDK establishes a **lean, stable core** with **unbounded extensibility**.

Instead of shipping a monolithic, closed system, MiningSDK provides:
- A minimal, reliable foundation
- Well-defined extension points
- Modular components that evolve independently

This allows the ecosystem to grow organically while maintaining operational reliability.

---

## Vision

MiningSDK is designed to be the **backbone of an open mining ecosystem**.

By standardizing the foundation of mining software, MiningSDK enables:
- Long-term sustainability of mining infrastructure
- Community-driven innovation
- Decentralized ownership of operational tooling

MiningSDK aligns mining infrastructure with Bitcoin’s core values: **openness, resilience, and decentralization**.

---

## Why MiningSDK?

### The Problem

Today’s mining software ecosystem is:

- **Fragmented** — isolated, non-interoperable systems
- **Opaque** — closed-source tooling with limited visibility
- **Rigid** — difficult to customize or extend
- **Locked-in** — high switching costs and vendor dependence

### The MiningSDK Solution

#### Transparency
- Fully open-source (Apache 2.0)
- Complete visibility into system behavior
- No hidden logic or proprietary control paths

#### Comprehensiveness
- One platform for all mining infrastructure
- Multi-vendor, multi-device support
- Unified monitoring and control model

#### Robustness
- Proven in Tether’s production mining operations
- Distributed architecture with no single point of failure
- Durable, persistent storage for operational data

#### Extensibility
- Modular architecture for new device support
- Plugin-friendly design for custom integrations
- Community-first development model

### Industry Standard

MiningSDK aims to become the **industry standard** for Bitcoin mining operations—similar to how Linux standardized operating systems.

---

## Who is MiningSDK For?

MiningSDK is built for **everyone who mines Bitcoin**.

| User Type | Primary Use Case |
|-----------------------|---------------------------------------------------------------|
| **Home Miners** | Simple monitoring and control for a few devices |
| **Small Operations** | Manage multiple miners across locations |
| **Industrial Sites** | Orchestrate thousands of ASICs with fault tolerance |
| **Developers** | Build custom mining tools and integrations |
| **Service Providers** | Deliver hosted mining management platforms |

---

## What You Can Build

- **Operational dashboards** (hashrate, power, temperature)
- **Pool management tools**
- **Infrastructure control systems** (containers, cooling, power)
- **Analytics and reporting pipelines**
- **Automation and optimization workflows**

---

## Example usage
MiningSDK allows you to register and connect to a mining device with just a few lines of code:

#### Install MiningSDK:
```bash
npm install @tether/mining-sdk
```
#### Start reading miner data using MiningSDK:
```bash
const miningSdk = require("@tether/mining-sdk")

//initialize a library for any miner model (example: Whatsminer m56s)
const wm56 = new miningSdk.WM_M56S()

//register a new miner
const miner = wm56.registerMiner({
ip: "127.0.0.1",
port: 8080,
serialNumber: "WM001"
})

//connect to actual device
await miner.connectToDevice()

//read miner stats
const stats = await miner.getStats()

```

---

## Deployment Modes

MiningSDK introduces a **flexible deployment model** that allows application to run as:

- A **single embedded process** (ideal for small sites and development)
- A **set of independent microservices** (ideal for large-scale production)

This is achieved by **decoupling device logic from runtime and deployment concerns**.

| Deployment Mode | Target Users | Benefits |
|------------------------|-----------------|-----------------------------------------------|
| **Single Process** | Small sites | Minimal setup, low resource overhead |
| **PM2 Microservices** | Medium sites | Process isolation, controlled scaling |
| **Docker / Kubernetes**| Large sites | Enterprise orchestration, fault tolerance |

---

## Key Capabilities

- **Single Install, Unified API** for small deployments
- **Microservice Compatibility** for large-scale operations
- **Deployment Flexibility** via PM2, Docker, or Kubernetes

---

## Business Impact

- Faster onboarding and reduced time-to-deploy
- Lower operational and support costs
- Preservation of existing production workflows
- Seamless growth from small to large deployments
- Reduced architectural risk over time

---

## Strategic Value

- One architecture for all customer sizes
- Lower total cost of ownership (TCO)
- Strong developer adoption and ecosystem growth
- Future-proof foundation for new device types and services

---

## Summary

**MiningSDK** is a single, unified backend SDK that combines:

- Open-source transparency
- Modular architecture
- Flexible deployment models
- Production-grade scalability

It enables Bitcoin mining operations to start small, scale smoothly, and remain in full control — without lock-in, rewrites, or hidden complexity.