8 unstable releases (3 breaking)
Uses new Rust 2024
| new 0.5.2 | Oct 1, 2025 |
|---|---|
| 0.5.1 | Oct 1, 2025 |
| 0.5.0 | Sep 21, 2025 |
| 0.3.0 | Jun 17, 2025 |
| 0.1.2 | Nov 6, 2020 |
#382 in Magic Beans
126 downloads per month
1MB
28K
SLoC
Contains (obscure autoconf code, 6KB) ckpool/src/jansson-2.14/configure.ac, (obscure autoconf code, 4KB) ckpool/configure.ac
para
para is a command-line tool for miners and pools. It is experimental
software with no warranty. See LICENSE for more details.
This repository includes a modified fork of
ckpool, which currently
runs on parasite.wtf:42069. For instructions on how to connect, please visit
parasite.space.
In addition to adding a postgres database for share logging and some helpful
flags it modifies the coinbase payout logic found in stratifier.c. For more
information go
here.
// Generation value
g64 = COIN;
d64 = wb->coinbasevalue - COIN;
wb->coinb2bin[wb->coinb2len++] = 2 + wb->insert_witness;
u64 = (uint64_t*)&wb->coinb2bin[wb->coinb2len];
*u64 = htole64(g64);
wb->coinb2len += 8;
/* Coinb2 address goes here, takes up 23~25 bytes + 1 byte for length */
wb->coinb3len = 0;
wb->coinb3bin = ckzalloc(256 + wb->insert_witness * (8 + witnessdata_size + 2));
if (ckp->donvalid && ckp->donation > 0) {
u64 = (uint64_t*)wb->coinb3bin;
*u64 = htole64(d64);
wb->coinb3len += 8;
wb->coinb3bin[wb->coinb3len++] = sdata->dontxnlen;
memcpy(wb->coinb3bin + wb->coinb3len, sdata->dontxnbin, sdata->dontxnlen);
wb->coinb3len += sdata->dontxnlen;
}
para is more than just glue code around ckpool though. It implements a Rust
library for the Stratum protocol and includes helpful command-line tools that
measure ping, inspect block templates and mimic mining machines. To see a full
list of available commands just follow the instructions below and do para help.
Setup
Requirements:
Manual Install
Rust is required to build, test, and develop. To install:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Bundled Environment
This repo includes a bundled development environment with Hermit that provides the above requirements.
. ./bin/activate-hermit
Build
Clone the para repo:
git clone https://github.com/parasitepool/para.git
cd para
To build a specific version of para, first checkout that version:
git checkout <VERSION>
And finally to actually build para:
cargo build --release
Once built, the para binary can be found at ./target/release/para.
para requires rustc version 1.90.0 or later. Run rustc --version to ensure
you have this version. Run rustup update to get the latest stable release.
You can also install para directly into your path by doing:
cargo install --path .
Dependencies
~126MB
~3M SLoC