Skip to content

0xB10C/miningpool-observer

Repository files navigation

miningpool-observer

miningpool-observer logo

Transparency for Mining Pool Transaction Selection

The miningpool-observer project compares block templates produced by a Bitcoin Core node to blocks produced by mining pools to provide insights about:

  • Shared, missing, and extra transactions per template and block pair
  • Transactions missing from multiple blocks they should have been included in
  • Template and block transactions conflicting with each other
  • Blocks not including transactions to or from OFAC sanctioned addresses

This project is inspired by BitMex Research: Bitcoin Miner Transaction Fee Gathering Capability and motivated by 9f6f1a8e55623aa320f430f9e3c6dc762c147035e713b96d72c20a58cf45fbbf.

Self-Hosting

The miningpool-observer project is built with self-hosting in mind. Both private and public instances, like e.g. miningpool.observer, are supported. Requirements are a Bitcoin Core node v22.0 and a PostgreSQL database.

See docs/self-hosting.md for more information.

Development

This repository is organized as follows:

├── artwork                         # Inkscape sources for the icons and images
├── contrib                         # e.g. Dockerfiles
├── daemon                          # Rust crate for the miningpool-observer-daemon
├── daemon-config.toml.example      # Example configuration file for the miningpool-observer-daemon
├── docs                            # Documentation
├── migrations                      # SQL files automatically ran by the miningpool-observer-daemon on startup
├── shared                          # Rust crate for code shared between the miningpool-observer-daemon and miningpool-observer-web
├── web                             # Rust crate for the miningpool-observer-web (web-server)
├── web-config.toml.example         # Example configuration file for the miningppool-observer-web
└── www                             # Static resources and HTML page templates used by the miningpool-observer-web web-server

See docs/development.md for more information.

License

This work is licensed under the MIT License.

See LICENSE for more information.