MCPcopy Index your code
hub / github.com/0xB10C/miningpool-observer

github.com/0xB10C/miningpool-observer @v0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.0 ↗ · + Follow
981 symbols 2,305 edges 22 files 5 documented · 1% updated 9d agov0.1.0 · 2021-05-06★ 6916 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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 (currently, you'll need a self-compiled master build! requires PR #18772 (rpc: calculate fees in getblock using BlockUndo data))) 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
├── sanctioned_addresses_XBT.json   # Contains sanctioned Bitcoin addresses
├── 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.

Core symbols most depended-on inside this repo

new
called by 67
shared/src/db_pool.rs
log_processing_error
called by 23
daemon/src/processing.rs
block
called by 22
web/src/db.rs
render_and_encode
called by 8
web/src/ogimage.rs
source
called by 8
web/src/ogimage.rs
is_tx_sanctioned
called by 6
daemon/src/processing.rs
build_transaction
called by 6
daemon/src/processing.rs
add_to_transactions
called by 6
daemon/src/processing.rs

Shape

Function 830
Method 89
Class 57
Enum 5

Languages

TypeScript81%
Rust19%

Modules by API surface

www/static/js/d3.v6.min.js793 symbols
daemon/src/processing.rs29 symbols
web/src/db.rs28 symbols
web/src/handler.rs17 symbols
web/src/ogimage.rs15 symbols
daemon/src/db.rs14 symbols
shared/src/config.rs12 symbols
web/src/model.rs11 symbols
shared/src/model.rs11 symbols
web/src/util.rs9 symbols
daemon/src/model.rs9 symbols
daemon/src/main.rs9 symbols

For agents

$ claude mcp add miningpool-observer \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page