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

Download history 56/week @ 2025-06-11 65/week @ 2025-06-18 7/week @ 2025-06-25 109/week @ 2025-09-17 17/week @ 2025-09-24

126 downloads per month

CC0 license

1MB
28K SLoC

C 19K SLoC // 0.1% comments Rust 7.5K SLoC // 0.0% comments Assembly 1.5K SLoC // 0.2% comments Just 122 SLoC // 0.0% comments Automake 90 SLoC // 0.0% comments Python 56 SLoC // 0.7% comments HCL 3 SLoC Shell 1 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