Skip to content

Release v1.0.0-rc.11

Choose a tag to compare

@github-actions github-actions released this 12 Mar 14:56
· 25 commits to master since this release
d8701cd

PoCX v1.0.0-rc.11

What's New

Plotter v2 — GPU-fused ring buffer plotter with CPU fallback

  • Ring buffer architecture moves scatter+compress entirely to GPU, reducing host memory from 3+ GiB to 1 GiB
  • Variable compression X1–X6 with constant GPU memory via multi-pass XOR-accumulate
  • Escalation (-e N): hold N warps per write buffer for better HDD throughput
  • Async write (-a): overlap GPU computation with disk I/O
  • Multi-path round-robin with buffer-level interleaving across drives
  • CPU plotting mode (default) with rayon-parallel hashing, supports all features
  • Per-path seed and resume support for interrupted plots
  • Published to crates.io as pocx_plotter_v2

Cross-platform plotfile fixes

  • Replace shell commands (df, lsblk, diskutil) with statvfs() for sector size detection
  • Auto-disable direct I/O on network/virtual filesystems (NFS, SMB, 9p, FUSE)
  • fallocate → ftruncate fallback for unsupported filesystems
  • Windows: Unicode volume path resolution, UNC/mapped drive support, network drive detection

Broader platform support

  • aarch64-unknown-linux-musl release target for embedded ARM64 devices
  • x86_64-unknown-linux-musl release target for older glibc systems
  • On-demand MIPS32 cross-compilation workflow (Dreambox DM7080 HD / BCM7435)
  • Remove secp256k1 C dependency from pocx_address for easier cross-compilation
  • Replace stat -c %D shell command with libc::stat syscall in miner

Breaking Changes

  • Plotter v2: -w (warps) is now required, fill-disk mode removed
  • Plotter v2: -m (memory limit) removed
  • Plotter v2: -D (double-buffer) renamed to -a (async-write)
  • Plotter v2: --line-progress removed (replaced by callback API)

Platforms:

  • Linux x86_64 (glibc and musl builds)
  • Linux ARM64 (glibc and musl builds)
  • Android ARM64
  • Windows x86_64
  • macOS x86_64 / ARM64 (Apple Silicon)

Linux Compatibility Note:

  • *-linux-musl builds are statically linked and work on any Linux distribution
  • Use musl builds for maximum compatibility (Ubuntu 20.04+, Debian, Alpine, etc.)
  • *-linux-gnu builds require glibc 2.39+ (Ubuntu 24.04+, Fedora 40+, Arch)

Binaries:

  • pocx_miner - Mining client
  • pocx_plotter - Plot file generator (GPU accelerated when OpenCL available)
  • pocx_verifier - Plot verification tool
  • pocx_aggregator - Mining proxy/aggregator
  • pocx_mockchain - Mock blockchain for testing

Configuration Files:

  • miner_config.yaml - Miner configuration template
  • aggregator_config.yaml - Aggregator configuration template
  • mockchain_config.toml - Mockchain configuration template

Installation:

# Linux/macOS
tar -xzf pocx-*.tar.gz
./pocx_miner --version

# Windows
# Extract pocx-*.zip
.\pocx_miner.exe --version