Metadata-Version: 2.4
Name: moonbeam-miner
Version: 1.0.1
Summary: Find the NerdMiners on your network and read their vitals, from the terminal.
Author: Vincent Gonzalez
License: MIT
Project-URL: Homepage, https://f-keys.com/moonbeam/
Project-URL: Source, https://github.com/zengineco/f-keys/tree/main/moonbeam
Keywords: bitcoin,nerdminer,bitaxe,esp32,mining,axeos,cli
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System :: Monitoring
Requires-Python: >=3.8
Description-Content-Type: text/markdown

```
╔════════════════════════════════════════════════════════════════════════════════════════════╗
║                                                                                            ║
║         ███╗   ███╗ ██████╗  ██████╗ ███╗   ██╗██████╗ ███████╗ █████╗ ███╗   ███╗         ║
║         ████╗ ████║██╔═══██╗██╔═══██╗████╗  ██║██╔══██╗██╔════╝██╔══██╗████╗ ████║         ║
║         ██╔████╔██║██║   ██║██║   ██║██╔██╗ ██║██████╔╝█████╗  ███████║██╔████╔██║         ║
║         ██║╚██╔╝██║██║   ██║██║   ██║██║╚██╗██║██╔══██╗██╔══╝  ██╔══██║██║╚██╔╝██║         ║
║         ██║ ╚═╝ ██║╚██████╔╝╚██████╔╝██║ ╚████║██████╔╝███████╗██║  ██║██║ ╚═╝ ██║         ║
║         ╚═╝     ╚═╝ ╚═════╝  ╚═════╝ ╚═╝  ╚═══╝╚═════╝ ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝         ║
║                                                                                            ║
║                    what are the miners on this network actually doing?                     ║
║                                                                                            ║
╚════════════════════════════════════════════════════════════════════════════════════════════╝
```

[![PyPI](https://img.shields.io/pypi/v/moonbeam-miner)](https://pypi.org/project/moonbeam-miner/) [![Python](https://img.shields.io/pypi/pyversions/moonbeam-miner)](https://pypi.org/project/moonbeam-miner/) [![License](https://img.shields.io/pypi/l/moonbeam-miner)](LICENSE) [![Dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](pyproject.toml)

Find the NerdMiners on your network and read their vitals, from the terminal.

```
pip install moonbeam-miner
moonbeam
```

No dependencies. Standard library only, so the install cannot fail on
someone else's package.

## What it does

```
moonbeam            the miners it already knows, polled now
moonbeam scan       sweep this subnet and remember what answered
moonbeam watch      refresh until you stop it
moonbeam show <ip>  everything one miner reported
```

The first run has nothing saved, so it offers to scan. Anything that
answers is remembered in `~/.moonbeam/miners.json`.

```
  #   NAME             ADDRESS             HASHRATE     TEMP   ACCEPTED    UPTIME
  ------------------------------------------------------------------------------
  1   Moonbeam-01      192.168.1.42        486 GH/s     54°C     18,422     1d 2h
  2   Moonbeam-02      192.168.1.51              —         —         31         —
  3   192.168.1.77     192.168.1.77         offline

  2 miners answering · total 486 GH/s (1 did not report a hashrate)
```

## A dash means the miner did not say

It does not mean zero, and it is never a plausible number standing in for
one that never arrived. A fabricated hashrate that looks real is worse
than a visible gap, because nothing tells you it is wrong. The summary
line counts how many devices declined to report rather than quietly
averaging them in.

## What it talks to

ESP-Miner and AxeOS devices — NerdMiner, Bitaxe and relatives — answer on
`http://<ip>/api/system/info`. Discovery probes every host on your /24
concurrently and keeps whatever responds with that shape.

## Use it as a library

The polling core is separate from the terminal output, so a GUI can share
it:

```python
from moonbeam import scan, poll

for m in scan():
    print(m["alias"], m["hashrate"])
```

---

```
╔════════════════════════════════════════════════════════════╗
║                                                            ║
║      ███████╗      ██╗  ██╗███████╗██╗   ██╗███████╗       ║
║      ██╔════╝      ██║ ██╔╝██╔════╝╚██╗ ██╔╝██╔════╝       ║
║      █████╗  █████╗█████╔╝ █████╗   ╚████╔╝ ███████╗       ║
║      ██╔══╝  ╚════╝██╔═██╗ ██╔══╝    ╚██╔╝  ╚════██║       ║
║      ██║           ██║  ██╗███████╗   ██║   ███████║       ║
║      ╚═╝           ╚═╝  ╚═╝╚══════╝   ╚═╝   ╚══════╝       ║
║                                                            ║
║               ·   C  R  E  A  T  I  V  E   ·               ║
║                                                            ║
║          ────────────────────────────────────────          ║
║                                                            ║
║                      Vincent Gonzalez                      ║
║                         f-keys.com                         ║
║                 ORCID 0009-0005-3640-014X                  ║
║                                                            ║
╚════════════════════════════════════════════════════════════╝
```

Part of [F-Keys](https://f-keys.com) — independent hardware, software
and internet products. See the [working log](https://f-keys.com/log/)
and [live status](https://f-keys.com/status/).
