Skip to content

JohnnyFFM/pocx_plotter_gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PoCX Plotter GUI

A Windows Forms GUI application for the PoCX Plotter - a user-friendly interface to create proof-of-capacity (PoC) plot files with CPU and GPU acceleration support.

License .NET Framework Platform

Features

  • Multi-Device Support: Utilize CPU and up to 4 GPUs simultaneously
  • Real-Time Monitoring: Live progress tracking with hash and write phase indicators
  • Smart Device Detection: Automatic CPU and GPU enumeration via WMI and OpenCL
  • Flexible Configuration:
    • Adjustable memory limits and thread counts per device
    • Compression ratio control (1-8x)
    • Direct I/O and low-priority modes
    • Customizable encounters and work group parameters
  • Persistent Settings: All configuration saved between sessions
  • Plot Resumption: Continue interrupted plotting operations
  • Disk Management: Display free space and optimal sector alignment for output paths

Requirements

System Requirements

  • OS: Windows 7 or later (Administrator privileges required)
  • .NET Framework: 4.5.2 or higher
  • RAM: Minimum 4GB (8GB+ recommended for GPU plotting)
  • Disk: Fast SSD/NVMe recommended for plot output

External Dependencies

The GUI requires the PoCX plotter executables (not included):

  • pocx_plotter_cpu.exe - CPU-only plotter
  • pocx_plotter_gpu.exe - GPU-accelerated plotter (requires OpenCL 1.x compatible GPU)

Place these executables in the same directory as PoCXPlotterGUI.exe or ensure they're in your system PATH.

Optional: GPU Support

For GPU acceleration, you need:

  • OpenCL 1.x compatible GPU (NVIDIA, AMD, or Intel)
  • Latest GPU drivers with OpenCL support

Installation

Pre-built Binaries

  1. Download the latest release from Releases
  2. Extract to desired location
  3. Ensure pocx_plotter_cpu.exe and pocx_plotter_gpu.exe are present
  4. Run PoCXPlotterGUI.exe as Administrator

Build from Source

  1. Clone the repository:

    git clone https://github.com/JohnnyFFM/pocx_plotter_gui.git
    cd pocx_plotter_gui
  2. Open PoCXPlotterGUI.sln in Visual Studio 2015 or later

  3. Restore NuGet packages:

    • Right-click solution → "Restore NuGet Packages"
  4. Build:

    • Select Release configuration
    • Build → Build Solution (Ctrl+Shift+B)
  5. Output will be in bin/Release/

Usage

Basic Workflow

  1. Launch Application: Run PoCXPlotterGUI.exe as Administrator

  2. Enter Account Details:

    • Enter your PoCX address (Bech32 or Base58Check format)
    • Optionally enable fixed seed for deterministic plotting
  3. Configure Plot Size:

    • Select unit: Warps (1 warp = 1 GiB), GiB, or TiB
    • Enter desired plot size
  4. Select Devices:

    • Check detected CPUs/GPUs in the device list
    • Set thread/work counts for each enabled device
  5. Choose Output Path:

    • Add one or more output directories
    • View available disk space
  6. Adjust Parameters (optional):

    • Memory limit (MiB)
    • Compression ratio (1-8x)
    • Direct I/O, low priority, benchmarks
  7. Start Plotting:

    • Click "Start Plotting"
    • Monitor real-time progress, speed (MiB/s), and ETA
    • Stop anytime if needed

Advanced Options

Parameter Description Default
Compression Compression ratio (1-8) 1
Encounters PoW difficulty multiplier 1
Work Groups GPU work group size 512
Memory Limit Maximum RAM usage (MiB) 4096
Direct I/O Bypass OS cache for writes Enabled
Low Priority Run plotter at below-normal priority Disabled
Benchmark Test mode without writing files Disabled
Zero-Copy Buffers For integrated GPUs with shared memory Disabled

Plot File Resumption

If plotting is interrupted:

  1. Menu → "Resume from file"
  2. Select the .pocx.tmp file from output directory
  3. Application will parse and populate settings
  4. Continue plotting from where it stopped

Attribution

This project is based on work by the PoC-Consortium:

Plot Format

Uses the POC2 format (originally from Burstcoin) with enhancements:

  • Fixed security vulnerabilities (on-the-fly compression attack)
  • Scalable proof-of-work generation
  • SIMD-aligned memory layout for performance
  • Seed functionality for plot diversification

Development

See CLAUDE.md for detailed development guidelines, architecture overview, and contribution instructions.

Quick Start for Developers

# Clone repository
git clone https://github.com/JohnnyFFM/pocx_plotter_gui.git

# Open in Visual Studio
start PoCXPlotterGUI.sln

# Restore packages and build
# F5 to run (requires Administrator)

Dependencies

  • NBitcoin (9.0.1) - Address encoding/decoding (Base58Check, Bech32)
  • OpenCL.Net (2.2.9.0) - GPU detection and compute

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

Acknowledgments

  • PoC-Consortium for the original plotter and miner implementations
  • Burstcoin community for the POC2 format specification
  • All contributors and testers

Support

For issues, questions, or contributions:


Note: This is a GUI wrapper for the PoCX plotter executables. The core plotting logic resides in the separate plotter binaries, which must be obtained separately.

About

A user friendly GUI for PoCX Plotting

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages