Skip to main content

Plotters

This document is a comprehensive listing of CLI commands for creating plots from within Chia.

Reference

chiapos

Functionality: Use the chiapos plotter

Usage: chia plotters chiapos [OPTIONS]

Options:

Short CommandLong CommandTypeRequiredDescription
-t--tmp_dirTEXTTrueTemporary directory 1 (where most of the plots temp data will be stored)
-2--tmp_dir2TEXTFalseTemporary directory 2 [Default: same as tmp_dir]
-k--sizeINTEGERFalseK value [Default: 32]
-m--memoTEXTFalseMemo variable
-i--idTEXTFalsePlot ID [Default: generate a random ID]
-b--bufferINTEGERFalseSize of the buffer, in MB [Default: 4608]
-u--bucketsINTEGERFalseNumber of buckets [Default: 64]
-s--stripesINTEGERFalseStripe size [Default: 65536]
-r--threadsINTEGERFalseNum threads [Default: 2]
-e--nobitfieldNoneFalseDisable bitfield [Default: bitfield is enabled]
--override-kNoneFalseForce size smaller than 32 (only needed where -k is less than 32 [Default: disabled]
-a--alt_fingerprintINTEGERFalseEnter the alternative fingerprint of the key you want to use
-c--contractTEXTFalsePool Contract Address (64 chars) [Default: none]
-f--farmerkeyTEXTFalseFarmer Public Key (48 bytes) [Default: use the key from the current wallet]
-p--pool-keyTEXTFalsePool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)]
-n--countINTEGERFalseNumber of plots to create [Default: 1]
-x--exclude_final_dirNoneFalseSkips adding [final dir] to harvester for farming [Default: copy to final dir is enabled]
-d--final_dirTEXTTrueFinal directory after plot has been created
--compressINTEGERFalseCompression level [Default: 0 (not compressed)]
-h--helpNoneFalseShow a help message and exit

madmax

Functionality: Use the madMAx plotter

Usage: chia plotters madmax [OPTIONS]

Options:

Short CommandLong CommandTypeRequiredDescription
-k--sizeINTEGERFalseK value [Default: 32]
-n--countINTEGERFalseNumber of plots to create [Default: 1]
-r--threadsINTEGERFalseNum threads [Default: 4]
-u--bucketsINTEGERFalseNumber of buckets [Default: 256]
-v--buckets3INTEGERFalseNumber of buckets for phases 3 and 4 [Default: 256]
-t--tmp_dirTEXTTrueTemporary directory 1 (where most of the plots temp data will be stored)
-2--tmp_dir2TEXTFalseTemporary directory 2 [Default: same as tmp_dir]
-w--waitforcopyNoneFalseWait for the plot to finish copying before starting the next plot [Default: don't wait]
-p--pool-keyTEXTFalsePool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)]
-f--farmerkeyTEXTFalseFarmer Public Key (48 bytes) [Default: use the key from the current wallet]
-c--contractTEXTFalsePool Contract Address (64 chars) [Default: none]
-G--tmptoggleNoneFalseAlternate tmpdir/tmpdir2 [Default: disabled]
-K--rmulti2INTEGERFalseThread multiplier for P2 [Default: 1]
-d--final_dirTEXTTrueFinal directory after plot has been created
-h--helpNoneFalseShow a help message and exit

bladebit

Functionality: Use one of the BladeBit plotters

Usage: chia plotters bladebit [cudaplot | ramplot | diskplot] [OPTIONS]

cudaplot

Functionality: Use the BladeBit CUDA plotter

Usage: chia plotters bladebit cudaplot [OPTIONS]

Options:

Short CommandLong CommandTypeRequiredDescription
-r--threadsINTEGERFalseNum threads [Default: 12]
-n--countINTEGERFalseNumber of plots to create [Default: 1]
-f--farmerkeyTEXTFalseFarmer Public Key (48 bytes) [Default: use the key from the current wallet]
-p--pool-keyTEXTFalsePool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)]
-c--contractTEXTFalsePool Contract Address (64 chars) [Default: none]
-t--tmp_dirTEXTFalseTemporary directory 1 (where most of the plot's temp data will be stored) [Default: in memory]
-2--tmp_dir2TEXTFalseTemporary directory 2 [Default: same as tmp_dir]
-i--idTEXTFalsePlot ID [Default: generate a random ID]
-w--warmstartNoneFalseSet to enable warm start [Default: disabled]
--nonumaNoneFalseSet to disable numa [Default: enabled]
--no-cpu-affinityNoneFalseSet to disable assigning automatic thread affinity [Default: enabled]
-v--verboseNoneFalseSet to enable verbose output [Default: disabled]
-d--final_dirTEXTTrueFinal directory after plot has been created
--compressINTEGERFalseCompression level, 0-9 are accepted [Default: 1]
--deviceINTEGERFalseThe CUDA device index (typically 0 or 1), set if more than one GPU is installed [Default: 0]
--disk-128NoneFalseEnable hybrid disk plotting, requires 128 GB of system RAM [Default: disabled]
--disk-16*NoneFalseEnable hybrid disk plotting, requires at least 16 GB of system RAM [Default: disabled] *SEE WARNING BELOW
-h--helpNoneFalseShow a help message and exit
warning

A few notes about the disk-16 option:

  • As of BladeBit 3.0.1 (Chia 2.1.0), disk-16 is experimental.
  • This option has been disabled in the Chia 2.1.0 release. It is currently only available from the standalone version of BladeBit.
  • Plots created with this option on Linux with direct I/O disabled appear to work, but more testing is still needed.
  • Plots created with this option on Windows are more likely to encounter issues.
  • Be sure to check all plots created with this option, as they could be invalid even if the plotter appeared to succeed.
info

Computers with at least 256 GB of system memory should not use either the disk-128 or disk-16 options. They should also not use tmp_dir or tmp_dir2. In this case, plotting will be performed entirely in memory.

Computers with at least 128 GB of system memory (but less than 256 GB) should use the disk-128, tmp_dir, and tmp_dir2 options. In this case, most of the plotting will be done in memory, and some will be done on disk.

Linux computers with at least 16 GB of system memory (but less than 128 GB) can use the disk-16, tmp_dir, and tmp_dir2 options. However, do so at your own risk. (See the above warning for details.) In this case, as much of the plotting as possible will be done in memory, and the rest will be done on disk.


ramplot

Functionality: Use the BladeBit RAM plotter

Usage: chia plotters bladebit ramplot [OPTIONS]

Options:

Short CommandLong CommandTypeRequiredDescription
-r--threadsINTEGERFalseNum threads [Default: 12]
-n--countINTEGERFalseNumber of plots to create [Default: 1]
-f--farmerkeyTEXTFalseFarmer Public Key (48 bytes) [Default: use the key from the current wallet]
-p--pool-keyTEXTFalsePool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)]
-c--contractTEXTFalsePool Contract Address (64 chars) [Default: none]
-i--idTEXTFalsePlot ID [Default: generate a random ID]
-w--warmstartNoneFalseSet to enable warm start [Default: disabled]
--nonumaNoneFalseSet to disable numa [Default: enabled]
--no-cpu-affinityNoneFalseSet to disable assigning automatic thread affinity [Default: enabled]
-v--verboseNoneFalseSet to enable verbose output [Default: disabled]
-d--final_dirTEXTTrueFinal directory after plot has been created
--compressINTEGERFalseCompression level, 0-9 are accepted [Default: 1]
-h--helpNoneFalseShow a help message and exit

diskplot

Functionality: Use the BladeBit disk plotter

Usage: chia plotters bladebit diskplot [OPTIONS]

Options:

Short CommandLong CommandTypeRequiredDescription
-r--threadsINTEGERFalseNum threads [Default: 12]
-n--countINTEGERFalseNumber of plots to create [Default: 1]
-f--farmerkeyTEXTFalseFarmer Public Key (48 bytes) [Default: use the key from the current wallet]
-p--pool-keyTEXTFalsePool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)]
-c--contractTEXTFalsePool Contract Address (64 chars) [Default: none]
-i--idTEXTFalsePlot ID [Default: generate a random ID]
-w--warmstartNoneFalseSet to enable warm start [Default: disabled]
--nonumaNoneFalseSet to disable numa [Default: enabled]
-v--verboseNoneFalseSet to enable verbose output [Default: disabled]
-d--final_dirTEXTTrueFinal directory after plot has been created
--no-cpu-affinityNoneFalseSet to disable assigning automatic thread affinity [Default: enabled]
--cacheINTEGERFalseSize of cache to reserve for I/O
--f1-threadsINTEGERFalseOverride the default thread count (12) for F1 generation
--fp-threadsINTEGERFalseOverride the default thread count (12) for forward propagation
--c-threadsINTEGERFalseOverride the default thread count (12) for C table processing
--p2-threadsINTEGERFalseOverride the default thread count (12) for Phase 2
--p3-threadsINTEGERFalseOverride the default thread count (12) for Phase 3
--alternateNoneFalseSet to halve the temp2 cache size requirements by alternating bucket writing methods between tables
-t--tmp_dirTEXTTrueTemporary directory 1 (where most of the plot's temp data will be stored)
-2--tmp_dir2TEXTFalseTemporary directory 2 [Default: same as tmp_dir]
-u--bucketsINTEGERFalseNumber of buckets [Default: 256]
-m--memoTEXTFalseMemo variable
--no-t1-directNoneFalseSet to disable direct I/O on the temp 1 directory
--no-t2-directNoneFalseSet to disable direct I/O on the temp 2 directory
--compressINTEGERFalseCompression level, 0-9 are accepted [Default: 1]
-h--helpNoneFalseShow a help message and exit

simulate

Functionality: Determine your farm's maximum capacity; this command is only avaible with the standalone version of BladeBit.

Usage: bladebit simulate [OPTIONS] <plot_file_path>

Options:

Short CommandLong CommandTypeRequiredDescription
-n--iterationsINTEGERFalseThe number of iterations to run [Default: 100]
-p--parallelINTEGERFalseThe number of instances to run in parallel [Default: 1]
-l--lookupFLOATFalseMaximum allowed time per proof lookup, in seconds [Default: 8.00]
-f--filterINTEGERFalsePlot filter bit count [Default: 512]
--partialsINTEGERFalsePartials per-day simulation [Default: 300]
--powerINTEGERFalseTime in seconds to run power simulation. -n is set automatically in this mode.
-s--sizeINTEGERFalseSize of farm. Only used when --power is set.
--seedHEX STRINGFalse64 char hex string to use as a random seed for challenges
--no-cudaNoneFalseIf set, don't use CUDA for decompression. [Default: not set]
-d--deviceINTEGERFalseCuda device index, to be used when more than one device exists [Default: 0]
-h--helpNoneFalseShow a help message and exit