The Parasite Toolkit
  • Rust 45.7%
  • C 43.9%
  • Assembly 2.7%
  • CMake 2.1%
  • HTML 1.8%
  • Other 3.8%
Find a file
2026-03-20 13:32:03 -04:00
.github/workflows Build binaries for releases (#299) 2025-12-10 15:40:02 -05:00
bin Optimize Rounds Endpoints (#474) 2026-03-16 22:30:35 -05:00
bitcoin@d0f6d9953a Upgrade to Bitcoin v30 (#239) 2025-10-13 17:21:13 -04:00
ckpool Move alerts system to para (#151) 2025-09-15 17:24:49 -05:00
copr Add mempool visualizer to test setup (#376) 2026-01-22 22:19:50 +00:00
crates Add ZMQ retries, timeouts and config errors (#473) 2026-03-18 13:37:30 -04:00
examples Add EventSink for External Logging (#342) 2026-01-27 15:52:12 -06:00
src Correct reject accounting for Upstream (#479) 2026-03-20 13:32:03 -04:00
static Add efficiency metric to frontend (#460) 2026-03-04 11:41:38 -05:00
templates Make Metatron Global Again (#471) 2026-03-11 11:42:12 -04:00
tests Add ZMQ retries, timeouts and config errors (#473) 2026-03-18 13:37:30 -04:00
.clang-format Add linting (#30) 2025-04-15 15:51:08 -04:00
.gitignore Cleanup hermit setup (#429) 2026-02-11 21:47:41 +00:00
.gitmodules Initial commit 2025-04-09 20:42:19 -04:00
build.rs Show git commit on dashboard (#432) 2026-02-19 02:47:27 +00:00
Cargo.lock Optimize Rounds Endpoints (#474) 2026-03-16 22:30:35 -05:00
Cargo.toml Fix memory leak: JoinSet -> TaskTracker (#468) 2026-03-10 11:44:27 -04:00
CHANGELOG.md Release 0.5.3 (#301) 2025-12-10 16:34:42 -05:00
justfile The Router: Static Round-Robin (#449) 2026-02-26 17:57:24 -05:00
LICENSE Add license (#189) 2025-09-21 18:28:10 +00:00
README.md Add Troubleshooting for Linux and Windows to README (#250) 2025-12-02 21:04:19 +00:00
rustfmt.toml Restructure repo (#120) 2025-07-28 21:34:29 -04:00

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 with curl:

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.

You can also install para directly into your path by doing:

cargo install --path .

Troubleshooting

Build Issues

Verify Minimum Versions

para requires:

  • rustc version 1.90.0 or later
    • Available from rustup update
  • gcc version 10.5.0 or later.
    • Available from your package manager or gnu.org

These versions can be verified with:

rustc --version
gcc --version

Linux Builds

To compile software on Linux systems, you may need additional packages which are not always installed by default. For Debian based systems (Ubuntu, Kali, etc), you can install these dependencies with apt:

sudo apt install build-essential pkg-config libssl-dev

Windows Builds

To build Rust programs on Windows, you need one of two ABI configurations:

  1. MSVC
    • On Windows, rustup will configure Rust to target this ABI by default
    • Visual Studio with Build Tools is required for building with MSVC
      • this can be a very large install (~4GB)
  2. GNU (GCC)
    • Available from the rustup toolchain install stable-gnu command
    • Requires MinGW/MSYS2
      # Run from within the MSYS terminal
      pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain \
      mingw-w64-ucrt-x86_64-nasm
      

The Rustup Book provides more details on Windows builds.