-
Notifications
You must be signed in to change notification settings - Fork 1
Plotter Guide
Version: 1.0.0 Last Updated: 2025-10-13
Wiki Navigation: Plotter Guide (you are here) | Miner Guide | Plot Format | Technical Details
- Introduction
- Requirements
- Installation
- Quick Start
- Command Line Reference
- Address Format
- GPU Plotting (OpenCL)
- Understanding Output
- Performance Optimization
- Troubleshooting
- FAQ
Plotting is the process of pre-computing cryptographic data and storing it on hard drives for use in Proof-of-Capacity (PoC) mining. Plot files contain thousands of pre-calculated hash values that miners use to participate in blockchain consensus without continuous high CPU usage.
Unlike Proof-of-Work mining that requires continuous computation, PoC mining uses pre-computed data stored in plot files. Once created, these files enable energy-efficient mining by simply reading stored values from disk rather than recalculating them repeatedly.
- High-performance CPU plotting with automatic SIMD optimization (SSE2/AVX/AVX2/AVX512)
- GPU acceleration via OpenCL (Intel/AMD/NVIDIA GPUs)
- Multi-GPU support for parallel plotting
- Hybrid CPU+GPU plotting for maximum throughput
- Direct I/O for optimal disk performance
- Resume capability for interrupted plots
- Compression levels with scalable Proof-of-Work
- Benchmark mode for performance testing
- Linux: Fully supported (kernel 2.6+, glibc 2.17+)
- Windows: Fully supported (Windows 10 1809+ or Windows 11)
- macOS: Fully supported (macOS 10.15 Catalina or later)
- CPU: x86_64 processor with SSE2 support (all modern 64-bit CPUs)
- RAM: 2 GB
- Storage: 10 GB for testing (1-10 TB typical for production)
- CPU: Multi-core processor with AVX2 or AVX512 support
- RAM: 8-16 GB for optimal performance
- Storage: High-capacity HDDs or SSDs with good sequential write speeds
- GPU: OpenCL-compatible GPU (Intel/AMD/NVIDIA)
- VRAM: Varies by configuration (typically 2-8 GB)
- OpenCL: Version 1.2 or later
- Rust: 1.91.0-nightly or later (for building from source)
-
OpenCL: For building with GPU support, you need OpenCL development headers (Linux: included in
-devpackages; Windows/macOS: bundled with GPU drivers). For running pre-built binaries with GPU support, only GPU drivers are required
If you don't have Rust installed, visit rustup.rs and follow the installation instructions.
# Install nightly toolchain
rustup toolchain install nightly --component rustfmt clippy
# Navigate to PoCX directory
cd /path/to/pocx
# Set nightly as default for this project
rustup override set nightlyCPU-only build (no OpenCL):
cargo build --release -p pocx_plotterBuild with OpenCL support:
cargo build --release -p pocx_plotter --features openclAfter successful build, the plotter binary will be at:
./target/release/pocx_plotter
Optional: Copy to system PATH:
sudo cp ./target/release/pocx_plotter /usr/local/bin/Pre-built binaries may be available from GitHub Releases (check for availability).
Intel GPUs:
sudo apt install intel-opencl-icd ocl-icd-opencl-devAMD GPUs:
sudo apt install mesa-opencl-icd ocl-icd-opencl-devNVIDIA GPUs:
sudo apt install nvidia-opencl-dev ocl-icd-opencl-dev- Intel: Install Intel Graphics Driver
- AMD: Install AMD Radeon Software
- NVIDIA: Install NVIDIA GPU Driver (includes OpenCL)
OpenCL is included with macOS (deprecated in 10.14+ but still functional).
# List available OpenCL platforms and devices
./target/release/pocx_plotter -oCreate a 10 GiB plot using default settings:
pocx_plotter -i pocx1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqc5hpgp -p /path/to/plots -w 10Parameters:
-
-i: Your PoC mining address -
-p: Directory where plot files will be saved -
-w: Number of warps (1 warp = 1 GiB = 1,073,741,824 bytes)
Use specific number of CPU threads:
pocx_plotter -i <address> -p /path/to/plots -w 100 -c 16Note: If not specified, plotter uses all available CPU cores.
First, discover available GPUs:
pocx_plotter -oExample output:
Platform 0: Intel(R) OpenCL HD Graphics
Device 0: Intel(R) UHD Graphics 630 [24 compute units, max workgroup: 256]
Platform 1: NVIDIA CUDA
Device 0: NVIDIA GeForce RTX 3080 [68 compute units, max workgroup: 1024]
Plot using GPU:
pocx_plotter -i <address> -p /path/to/plots -w 500 -g 1:0:4096GPU parameter format: platform:device:cores
- Platform 1, Device 0, 4096 cores
When you specify GPU without CPU threads, CPU is automatically disabled:
pocx_plotter -i <address> -p /path/to/plots -w 500 -g 0:0:1024Combine both for maximum throughput:
pocx_plotter -i <address> -p /path/to/plots -w 1000 -c 8 -g 0:0:2048Plot with multiple GPUs simultaneously:
pocx_plotter -i <address> -p /path/to/plots -w 2000 -g 0:0:2048 -g 0:1:2048Use compression level for increased Proof-of-Work:
pocx_plotter -i <address> -p /path/to/plots -w 500 -x 4Compression levels:
-
-x 1: X1 = 2^1 = 2x scaling (default) -
-x 2: X2 = 2^2 = 4x scaling -
-x 3: X3 = 2^3 = 8x scaling -
-x 4: X4 = 2^4 = 16x scaling
Higher compression requires exponentially more memory and computation time.
Let plotter calculate optimal warp count:
pocx_plotter -i <address> -p /mnt/disk1 -w 0 -n 5This creates 5 plot files, automatically sizing each to fill available disk space.
Plot to multiple disks in parallel:
pocx_plotter -i <address> -p /mnt/disk1 -p /mnt/disk2 -p /mnt/disk3 -w 1000Creates one 1 TiB plot file on each disk simultaneously.
If plotting is interrupted, you can resume using the seed:
# Original plot command
pocx_plotter -i <address> -p /plots -w 1000 -n 1
# After interruption, check plot file for seed (in filename)
# Format: ADDRESS_SEED_WARPS_X1.tmp
# Example: 1234567890abcdef_5656565656565656565656565656565656565656565656565656565656565656_1000_X1.tmp
# Resume with seed
pocx_plotter -i <address> -p /plots -w 1000 -n 1 -s 5656565656565656565656565656565656565656565656565656565656565656Requirements for resume:
- Must specify
-n 1(single plot file) - Must use same address, path, warps, and compression
- Seed must be exactly 64 hexadecimal characters
Test plotting performance without writing files:
pocx_plotter -i <address> -b -w 100Useful for:
- Testing hardware capabilities
- Comparing CPU vs GPU performance
- Verifying SIMD optimization detection
| Flag | Long Form | Type | Description |
|---|---|---|---|
-i |
--id <address> |
String | PoC mining address (Base58 or Bech32 format) |
| Flag | Long Form | Type | Default | Description |
|---|---|---|---|---|
-w |
--warps <warps> |
u64 | 0 | Number of warps to plot (1 warp = 1 GiB) |
-n |
--num <number> |
u64 | 1 | Number of plot files to generate |
-p |
--path <path> |
String | . |
Target disk path(s), can be specified multiple times |
-x |
--compression <level> |
u8 | 1 | POW scaling factor (2^level) |
Warp calculation:
- If
-w 0and-n> 0: Auto-calculate warps to fill disk - If
-w> 0: Use specified warp count per file - 1 warp = 1 GiB = 1,073,741,824 bytes exactly
| Flag | Long Form | Type | Default | Description |
|---|---|---|---|---|
-c |
--cpu <threads> |
usize | All cores | Number of CPU threads to use |
Behavior:
- Default: Uses all available CPU cores
- Max: Capped at 2× physical cores
- If GPU specified without
-c: CPU threads = 0 (GPU-only mode)
| Flag | Long Form | Type | Description |
|---|---|---|---|
-g |
--gpu <config> |
String | GPU configuration: platform:device:cores
|
-o |
--opencl |
Flag | List OpenCL platforms/devices and exit |
-z |
--zcb |
Flag | Enable zero-copy buffers (integrated GPUs) |
-k |
--kws-override <size> |
usize | Override kernel workgroup size |
GPU configuration format:
-g platform_id:device_id:cores
-
platform_id: OpenCL platform index (from
-ooutput) - device_id: Device index within platform
- cores: Number of cores to use (0 = use all available)
Zero-copy buffers (-z):
- Recommended for integrated GPUs (Intel HD Graphics, AMD APUs)
- Reduces memory usage by half
- Not beneficial for discrete GPUs with dedicated VRAM
| Flag | Long Form | Type | Default | Description |
|---|---|---|---|---|
-s |
--seed <seed> |
String | Random | 64-character hex seed for resuming plots |
-m |
--mem <memory> |
String | "0B" |
Memory limit (e.g., 8GiB, 512MiB) |
-e |
--escalate <mult> |
u64 | 1 | Buffer multiplier (increases memory usage) |
Seed format:
- Exactly 64 hexadecimal characters (0-9, a-f, A-F)
- Example:
1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef - Used for resume only (requires
-n 1)
Memory limit format:
- Units: B, KiB, MiB, GiB, TiB, PiB, EiB (binary)
- Units: KB, MB, GB, TB, PB, EB (decimal)
- Examples:
--mem 10GiB,--mem 512MiB - Validation: Cannot exceed 2× available system memory
Escalate multiplier:
- Increases buffer sizes for better performance
- Memory usage = base × escalate
- Higher values require more RAM
| Flag | Long Form | Description |
|---|---|---|
-d |
--ddio |
Disable direct I/O (enabled by default) |
-l |
--prio |
Run plotter with low priority |
-q |
--quiet |
Run in non-verbose mode (suppresses progress) |
-b |
--bench |
Benchmark mode (no file writes) |
Direct I/O:
- Enabled by default for maximum performance
- Bypasses OS page cache
- Automatically disabled if sector size not power of 2 or > 256 KiB
- Use
-dto disable manually
PoCX plotter currently implements two address formats, both using 20-byte account IDs:
Example: b1A2B3C4D5E6F7G8H9JKLMNPQRSTUVWXYZabcdefgh
- Network-specific version byte
- 4-byte checksum for validation
- Used by Burst, BHD, and other POC1/POC2 chains
Example: burst1... or pocx1...
- Human-readable prefix (HRP)
- Error detection via checksum
- More robust against typos
- Length: 1-90 characters
- Validation: Must decode to valid 20-byte payload
- Network independence: Plot files store only the payload, making them usable across different networks
Obtain a mining address from wallet software for the PoC blockchain you're mining.
PoCX plot files store only the 20-byte address payload (network-independent format). The plotter extracts this payload and uses it in the plot filename:
Format: <ADDRESS_HEX>_<SEED>_<WARPS>_X<COMPRESSION>.pocx
Example: 1212121212121212121212121212121212121212_5656...5656_1024_X1.pocx
Cross-chain compatibility: Plot files work across blockchains only if they derive the same 20-byte payload from your address. Different address derivation schemes require separate plot files.
You can also specify the address as a 40-character hex string (20 bytes):
pocx_plotter -i 1212121212121212121212121212121212121212 -p /plots -w 100GPU plotting can significantly accelerate plot generation, especially for high-compression plots. PoCX supports OpenCL 1.2+ compatible GPUs from Intel, AMD, and NVIDIA.
See Installation - OpenCL section above.
cargo build --release -p pocx_plotter --features openclpocx_plotter -oExample output:
OpenCL Platforms and Devices:
Platform 0: Intel(R) OpenCL HD Graphics
Device 0: Intel(R) UHD Graphics 630
Vendor: Intel(R) Corporation
Compute Units: 24
Max Workgroup Size: 256
Platform 1: NVIDIA CUDA
Device 0: NVIDIA GeForce RTX 3080
Vendor: NVIDIA Corporation
Compute Units: 68
Max Workgroup Size: 1024
pocx_plotter -i <address> -p /plots -w 500 -g 0:0:1024Parameter breakdown:
-
-g 0:0:1024- Platform: 0 (Intel OpenCL)
- Device: 0 (first GPU)
- Cores: 1024 (use 1024 compute units)
Recommendation: Start with a multiple of max workgroup size.
For example, if max workgroup size = 256:
- Try: 256, 512, 1024, 2048
- Experiment to find best performance
Auto-detect (use all cores):
pocx_plotter -i <address> -p /plots -w 500 -g 0:0:0Setting cores to 0 uses all available compute units.
Plot with multiple GPUs for maximum throughput:
pocx_plotter -i <address> -p /plots -w 2000 -g 0:0:2048 -g 1:0:4096This uses:
- Platform 0, Device 0 with 2048 cores
- Platform 1, Device 0 with 4096 cores
Use zero-copy buffers to reduce memory usage:
pocx_plotter -i <address> -p /plots -w 500 -g 0:0:1024 -zThe -z flag enables zero-copy buffers, reducing GPU memory usage by 50%.
Do not use zero-copy buffers for discrete GPUs with dedicated VRAM:
pocx_plotter -i <address> -p /plots -w 500 -g 0:0:4096-
Start with GPU-only mode to test maximum GPU performance:
pocx_plotter -i <address> -p /plots -w 100 -g 0:0:2048
-
Add CPU if GPU isn't fully utilized:
pocx_plotter -i <address> -p /plots -w 100 -c 4 -g 0:0:2048
-
Benchmark to compare configurations:
pocx_plotter -i <address> -b -w 100 -g 0:0:2048
GPU plotting requires VRAM based on configuration:
Formula:
VRAM = 2 × cores × workgroup_size × 256 KiB
Example (36 cores, workgroup 256):
VRAM = 2 × 36 × 256 × 256 KiB = 4.5 GiB
The plotter validates VRAM availability at startup and will error if insufficient.
See Troubleshooting - OpenCL Issues section below.
PoCX Plotter 1.0.0
written by Proof of Capacity Consortium in Rust
CPU: AMD Ryzen 9 5950X 16-Core Processor [using 32 of 32 cores + AVX2]
RAM: Total=64.0 GiB, Available=48.2 GiB, Usage=12.5 GiB
Cache(Plotter)=2.0 GiB x1, Cache(HDD)=1.0 GiB x1 x3, Cache(GPU)=0.5 GiB
Address : pocx1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqc5hpgp
Address Hex : 1212121212121212121212121212121212121212 (network-independent payload)
Compression : 2(X1)
Output path(s): [/mnt/disk1, /mnt/disk2, /mnt/disk3]
Files to plot : [1, 1, 1]
Warps per file: [1024, 1024, 1024]
Total warps : 3072
Starting plotting...
Key information:
- CPU: Processor name, threads used, SIMD extension detected
- RAM: Total, available, and plotter memory usage
- Cache: Plotter cache, HDD cache per disk, GPU cache (if applicable)
- Address: Input address and hex payload
- Compression: PoW scaling factor
- Output paths: Disk paths and warps per file
- Total warps: Sum of all warps across all files
Two concurrent progress bars display during plotting:
Hashing: [████████████████████░░░░░░░░░░░░] 1638.4 GiB/3072.0 GiB (450.2 MiB/s, ETA 53m 28s) msg
Writing: [███████████████░░░░░░░░░░░░░░░░░] 1228.8 GiB/3072.0 GiB (382.1 MiB/s, ETA 65m 12s) msg
Progress bar components:
- Bar: Visual representation (40 characters wide)
- Progress: Bytes completed / total bytes
- Speed: Current throughput (MiB/s or GiB/s)
- ETA: Estimated time remaining
- Message: Current operation status
Generated 12,582,912 nonces in 3h 24m 18s, 425.3 MiB/s, 15.2 warps/h.
Statistics:
- Nonces: Total nonces generated (4096 nonces = 1 warp)
- Time: Total plotting duration
- Speed: Average throughput in MiB/s
- Rate: Average warps per hour
During plotting (temporary):
1212121212121212121212121212121212121212_5656565656565656565656565656565656565656565656565656565656565656_1024_X1.tmp
After completion (final):
1212121212121212121212121212121212121212_5656565656565656565656565656565656565656565656565656565656565656_1024_X1.pocx
Filename format:
<ADDRESS_HEX>_<SEED_HEX>_<WARPS>_X<COMPRESSION>.<extension>
- ADDRESS_HEX: 40 hex chars (20 bytes) - network-independent
- SEED_HEX: 64 hex chars (32 bytes) - random or specified
- WARPS: Number of warps (1 warp = 1 GiB)
- COMPRESSION: X1, X2, X4, etc.
-
Extension:
.tmpduring plotting,.pocxwhen complete
After plotting completes, you can verify the plot file:
pocx_verifier check -f plot_file.pocx -m partialThis performs a quick sanity check by verifying one nonce in each scoop. For full verification (much slower), use -m complete.
The plotter automatically detects and uses the best available SIMD instruction set:
- AVX-512F: 64 bytes/instruction (fastest)
- AVX2: 32 bytes/instruction
- AVX: 32 bytes/instruction
- SSE2: 16 bytes/instruction (baseline)
- Fallback: Scalar operations (slowest)
Check detection in startup output:
CPU: ... [using X of Y cores + AVX2]
Ensure your system supports AVX2 or better for optimal performance.
Default behavior: Uses all available logical cores.
Manual tuning:
pocx_plotter -i <address> -p /plots -w 500 -c 16Recommendations:
- Start with all cores (default)
- If system becomes unresponsive, reduce to 75-90% of cores
- For hybrid CPU+GPU, reduce CPU threads to avoid bottlenecks
The plotter automatically pins threads to physical CPU cores for better cache locality. No configuration needed.
Increase buffer sizes for longer sequential writes:
pocx_plotter -i <address> -p /plots -w 500 -e 2Effect:
- Doubles all buffer sizes
- Requires 2× more RAM
- Enables longer sequential writes, improving performance on spinning hard drives
When to use:
- Spinning hard drives (HDDs)
- Systems with abundant RAM
- Multiple HDDs in parallel
When to avoid:
- Limited RAM
- Many concurrent plots
- NVMe/SSDs (already fast, no benefit)
Limit total memory usage when plotting multiple disks:
pocx_plotter -i <address> -p /disk1 -p /disk2 -p /disk3 -w 1000 -m 16GiBUseful for:
- Shared systems
- Preventing OOM (Out of Memory) errors
- Controlling resource usage
Direct I/O bypasses OS page cache for predictable performance:
pocx_plotter -i <address> -p /plots -w 500Direct I/O is enabled by default unless:
- Sector size is not a power of 2
- Sector size > 256 KiB
- Manually disabled with
-dflag
Disable Direct I/O:
pocx_plotter -i <address> -p /plots -w 500 -dWhen to disable:
- Plotting to network shares (NFS, SMB)
- Compatibility issues with filesystem
- Testing/debugging
Best:
- ext4 (Linux): Excellent for large files, well-tested
- XFS (Linux): Good for large files and parallel I/O
- NTFS (Windows): Standard Windows filesystem
Acceptable:
- Btrfs (Linux): Works but may have overhead
- exFAT (Cross-platform): Portable but less performant
Avoid:
- FAT32: 4 GiB file size limit (plot files are much larger)
See GPU Plotting - Performance Tips section above.
Test different configurations without writing files:
# CPU only
pocx_plotter -i <address> -b -w 100
# GPU only
pocx_plotter -i <address> -b -w 100 -g 0:0:2048
# Hybrid
pocx_plotter -i <address> -b -w 100 -c 8 -g 0:0:2048Compare output speeds to determine optimal configuration.
Run plotter with reduced priority to avoid impacting other system tasks:
pocx_plotter -i <address> -p /plots -w 1000 -lEffect:
- Reduces CPU scheduler priority
- Allows other applications to take precedence
- Plotting will take longer but won't slow down your system
Error:
Invalid address: <error details>
Causes:
- Malformed Base58/Bech32 address
- Invalid checksum
- Unsupported format
Solution:
- Verify address is correct
- Check for typos
- Ensure address is from a PoC-compatible blockchain
- Try hex payload format (40 hex characters)
Error:
Insufficient host memory for plotting!
RAM: Total=16.0 GiB, Available=8.2 GiB
Plotter requirement: 4.0 GiB x1 (escalation)
Writer requirement: 3.0 GiB x1 (escalation)
GPU requirement: 2.0 GiB
TOTAL requirement: 9.0 GiB
Solutions:
- Close other applications to free RAM
-
Reduce compression level:
-x 1instead of-x 4 -
Set memory limit:
-m 8GiB - Reduce escalate: Use default (1) instead of higher values
- Disable GPU: Plot CPU-only to free VRAM
- Plot fewer disks simultaneously
Error:
Insufficient disk space, MiB_required=1048576, MiB_available=524288, path=/mnt/disk1
Solutions:
- Free up disk space
- Reduce warp count:
-w 500instead of-w 1024 - Plot to different disk:
-p /mnt/disk2
Error:
Invalid seed length: expected 64 hex characters, got 32
Solution:
- Ensure seed is exactly 64 hexadecimal characters (0-9, a-f, A-F)
- Check for spaces or special characters
- Extract seed from plot filename (64-character section)
Error:
Permission denied: /path/to/plots
Solutions:
- Ensure write permissions:
chmod 755 /path/to/plots - Check directory exists:
mkdir -p /path/to/plots - Run with appropriate user permissions (avoid root if possible)
Error:
No OpenCL platforms found.
OpenCL runtime is installed but no compatible GPU detected.
Solutions:
- Install OpenCL runtime for your GPU vendor
-
Check GPU is detected:
lspci | grep -i vga(Linux) - Update GPU drivers
-
Verify with clinfo:
clinfo(if installed)
Error:
OpenCL platform 2 does not exist
Solutions:
- Run
pocx_plotter -oto list available platforms/devices - Use correct platform:device indices from the output
- Platform/device numbering starts at 0
Error:
Not enough GPU memory. Required: 4096 MiB, Available: 2048 MiB
Solutions:
-
Reduce core count:
-g 0:0:1024instead of-g 0:0:4096 -
Enable zero-copy (integrated GPUs only):
-z - Use CPU plotting instead
Error:
Failed to build OpenCL kernel: ...
Solutions:
- Update GPU drivers to latest version
- Check OpenCL version compatibility (need 1.2+)
- Try different GPU if available
- Fall back to CPU plotting
Symptoms:
- Much slower than expected
- Progress stalls frequently
Diagnostics:
- Check CPU usage: Should be near 100% per thread
-
Check disk I/O:
iostat -x 5(Linux) or Task Manager (Windows) - Check SIMD detection: Look for AVX2/AVX in startup output
Solutions:
- Verify SIMD enabled: Should see AVX2 or better
- Close background applications
- Check disk health: Failing HDDs slow down dramatically
-
Try Direct I/O: Remove
-dflag if you disabled it -
Increase buffer multiplier:
-e 2 - Use faster storage: SSD instead of HDD
Symptoms:
- Mouse/keyboard lag
- Other applications slow
Solutions:
-
Reduce CPU threads:
-c 12(instead of all 16 cores) -
Enable low priority:
-l -
Limit memory:
-m 8GiB
Symptoms:
- GPU usage at 0% (check with
nvidia-smior similar) - Plotting speed same as CPU-only
Solutions:
-
Verify OpenCL build: Rebuild with
--features opencl -
Check GPU parameter: Ensure
-gflag is correct - Increase core count: Try higher values
- Check GPU power management: Disable power saving
Symptom:
Verification failed: Hash mismatch at nonce 12345
Solutions:
-
Check disk health: Run
smartctl -a /dev/sdX(Linux) or CrystalDiskInfo (Windows) - Re-plot the file: Delete and recreate
- Try different disk: Hardware may be failing
- Disable overclocking: If CPU/RAM is overclocked
Error:
Resume seed does not match plot file
Solutions:
- Ensure you're using the exact seed from the filename (64 hex characters)
- Verify address, warps, and compression match original
- Must use
-n 1(single plot file)
Yes, but with caveats:
- Disable Direct I/O:
-d - Performance will be limited by network speed
- NFS/SMB may have compatibility issues
- Wired connections strongly recommended
Recommendation: Use X1 (default) unless:
- Network requires higher compression
- You have abundant RAM and CPU resources
- You want to participate in higher-difficulty mining
Higher compression (X2, X4, X8) requires exponentially more:
- Computation time
- Memory usage
- Power consumption
Yes, if planned in advance:
- Note the seed from the filename during plotting
- If interrupted, use the same seed with
-sflag - Must use identical parameters (address, warps, compression)
- Only works with single file (
-n 1)
No automatic resume: You must manually provide the seed.
Yes, in two ways:
-
Multiple directories (parallel):
pocx_plotter -i <addr> -p /disk1 -p /disk2 -p /disk3 -w 1000
-
Multiple processes (manual):
pocx_plotter -i <addr> -p /disk1 -w 1000 & pocx_plotter -i <addr> -p /disk2 -w 1000 &
Watch total memory usage to avoid OOM.
It depends on whether the blockchains use the same address payload:
- Same payload → No replotting needed: If networks derive the same 20-byte payload from your address, the same plot files work
- Different payload → Replotting required: If networks construct addresses differently, plots are not compatible
PoCX plot files store only the 20-byte address payload (network-independent format), but compatibility between chains depends on address derivation schemes.
Common causes:
- Thermal throttling: GPU overheating, clean dust/improve cooling
- Power limit: GPU not receiving enough power
- Wrong configuration: Try different core counts
-
CPU bottleneck: Try GPU-only mode (no
-cflag) - Driver issues: Update to latest GPU drivers
- 1 Nonce = 4,096 scoops = 262,144 bytes = 256 KiB
- 1 Warp = 4,096 nonces = 1,073,741,824 bytes = 1 GiB exactly
Conversion: 1 warp = 4,096 nonces
Yes, use pocx_verifier:
# Full verification
pocx_verifier check -f plot.pocx -m complete
# Quick check (sample 100 random nonces)
pocx_verifier check -f plot.pocx -m randomCPU plotting:
- Modern desktop: 100-200W
- High-end workstation: 200-400W
GPU plotting:
- Add GPU TDP (e.g., RTX 3080 = +320W)
- Total: 400-700W for high-end systems
Cost: Electricity costs vary by location. Calculate:
kWh = (Watts × Hours) / 1000
Cost = kWh × Rate_per_kWh
Example: 300W for 100 hours at $0.12/kWh:
kWh = (300 × 100) / 1000 = 30 kWh
Cost = 30 × $0.12 = $3.60
Yes, but with caution:
- CPU overclock: Can improve performance 5-15%
- GPU overclock: Can improve GPU plotting 10-20%
- RAM overclock: Minimal benefit (< 5%)
Risks:
- System instability
- Data corruption (validate plots after)
- Increased power consumption
- Reduced hardware lifespan
Recommendation: Only overclock if experienced. Plot verification is essential.
- Plot Format - Technical details on PoCX format
- Miner Guide - How to use plots for mining
- GitHub Repository - Source code and issues
- Proof of Capacity Consortium - Organization homepage
Document Version: 1.0.0 Last Updated: 2025-10-13 Maintained by: Proof of Capacity Consortium