https://github.com/pool2win/braidpool
A scalable peer to peer bitcoin mining pool with support for hashrate futures.
https://github.com/pool2win/braidpool
Last synced: about 2 months ago
JSON representation
A scalable peer to peer bitcoin mining pool with support for hashrate futures.
- Host: GitHub
- URL: https://github.com/pool2win/braidpool
- Owner: pool2win
- License: agpl-3.0
- Created: 2024-01-25T16:01:22.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-15T14:22:42.000Z (almost 2 years ago)
- Last Synced: 2024-07-15T17:18:30.507Z (almost 2 years ago)
- Language: Rust
- Size: 6.91 MB
- Stars: 4
- Watchers: 4
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
[](https://github.com/pool2win/braidpool/actions/workflows/rust-node.yml) [](https://codecov.io/github/pool2win/braidpool)
# Goals
The goals of the pool are:
1. Lower variance for independent miners, even when large miners join the pool.
2. Miners build their own blocks, just like in p2pool.
3. Payouts require a constant size blockspace, independent of the number of
miners on the pool.
4. Provide building blocks for enabling a futures market of hash rates.
# Developer
To run tests for the braidpool node, use the usual `cargo` test utility.
```
cd node
cargo test
```
We are using codecov in the CI workflow. To set codecov locally, you
will need to install llvm-codecov and then you'll be able to run it.
Installation `cargo +stable install cargo-llvm-cov --locked` or follow
instructions here: https://github.com/taiki-e/cargo-llvm-cov.
Running test with coverage reports `cargo llvm-code`.
# Running the node
For the moment, the node runs a simple p2p broadcast. To run it you need to do
the usual cargo things
```
cd node
cargo build
# run the first seed node on port 6680
RUST_LOG=info cargo run
# run other nodes pointing to the seed node and specify their own port as 6681
RUST_LOG=info cargo run -- --config-file=config.1.toml
# run other nodes pointing to the seed node and specify their own port as 6682
RUST_LOG=info cargo run -- --config-file=config.2.toml
```
# Progress
The [project on github](https://github.com/wholooks/braidpool/projects/1)
tracks the main components to build. Here's a list to keep us focused:
- [ ] P2P gossip based broadcast of miner blocks and shares.
- [ ] Use FROST rust implementation for providing threshold schnorr
signatures. Use mock clock for identifying rounds.
- [ ] A DAG of shares to track contributions for miners.
- [ ] Validate received blocks and shares.
- [ ] Single script installer (limited to Linux variants, potentially using
docker).
Matrix chat: [https://matrix.to/#/#braidpool:matrix.org](https://matrix.to/#/#braidpool:matrix.org)
Mailing list: [https://sourceforge.net/p/braidpool/mailman/braidpool-discuss/](https://sourceforge.net/p/braidpool/mailman/braidpool-discuss/)
Development blog: [https://blog.opdup.com/](https://blog.opdup.com/)