Multi-threaded pipelined Chia k32 plotter
This is a new implementation of a chia plotter which is designed as a processing pipeline, similar to how GPUs work, only the “cores” are normal software CPU threads. As a result this plotter is able to fully max out any storage device’s bandwidth, simply by increasing the number of “cores”, ie. threads.
Dowload last release v0.1.6-chives
Join Chives Pool — Chives coin (XCC) pool with NFT plots support
Usage
Your donation will help me build new versions:
XCH: xch1vhfnguq36yya0kzc0a0wr9yyj5cm2cefsukcu45jef3x3zpjpa7qc888nm
BTC: 17w2HvVdHnkACZnATMqZov5LJkx2EFUFdz
ETH: 0x0dd101c83341e0c43cc95514ca731092b14dea8b
LTC: LViokiXWfyjD4M9LErhGmdt3uzDvmVo3pC
DOGE: DRqJFr9ityNoL7v6oSnsZq2mh3VJBZm8pY
Build based on madMAx43v3r source code, check his github.
He is a legend!
Support or Contact
chia-plotter is maintained by stotiks. This page was generated by GitHub Pages.
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]
Short Command | Long Command | Type | Required | Description |
---|---|---|---|---|
-t | —tmp_dir | TEXT | True | Temporary directory 1 (where most of the plots temp data will be stored) |
-2 | —tmp_dir2 | TEXT | False | Temporary directory 2 [Default: same as tmp_dir ] |
-k | —size | INTEGER | False | K value [Default: 32] |
-m | —memo | TEXT | False | Memo variable |
-i | —id | TEXT | False | Plot ID [Default: generate a random ID] |
-b | —buffer | INTEGER | False | Size of the buffer, in MB [Default: 4608] |
-u | —buckets | INTEGER | False | Number of buckets [Default: 64] |
-s | —stripes | INTEGER | False | Stripe size [Default: 65536] |
-r | —threads | INTEGER | False | Num threads [Default: 2] |
-e | —nobitfield | None | False | Disable bitfield [Default: bitfield is enabled] |
—override-k | None | False | Force size smaller than 32 (only needed where -k is less than 32 [Default: disabled] | |
-a | —alt_fingerprint | INTEGER | False | Enter the alternative fingerprint of the key you want to use |
-c | —contract | TEXT | False | Pool Contract Address (64 chars) [Default: none] |
-f | —farmerkey | TEXT | False | Farmer Public Key (48 bytes) [Default: use the key from the current wallet] |
-p | —pool-key | TEXT | False | Pool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)] |
-n | —count | INTEGER | False | Number of plots to create [Default: 1] |
-x | —exclude_final_dir | None | False | Skips adding [final dir] to harvester for farming [Default: copy to final dir is enabled] |
-d | —final_dir | TEXT | True | Final directory after plot has been created |
—compress | INTEGER | False | Compression level [Default: 0 (not compressed)] | |
-h | —help | None | False | Show a help message and exit |
madmax
Functionality: Use the madMAx plotter
Usage: chia plotters madmax [OPTIONS]
Short Command | Long Command | Type | Required | Description |
---|---|---|---|---|
-k | —size | INTEGER | False | K value [Default: 32] |
-n | —count | INTEGER | False | Number of plots to create [Default: 1] |
-r | —threads | INTEGER | False | Num threads [Default: 4] |
-u | —buckets | INTEGER | False | Number of buckets [Default: 256] |
-v | —buckets3 | INTEGER | False | Number of buckets for phases 3 and 4 [Default: 256] |
-t | —tmp_dir | TEXT | True | Temporary directory 1 (where most of the plots temp data will be stored) |
-2 | —tmp_dir2 | TEXT | False | Temporary directory 2 [Default: same as tmp_dir ] |
-w | —waitforcopy | None | False | Wait for the plot to finish copying before starting the next plot [Default: don't wait] |
-p | —pool-key | TEXT | False | Pool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)] |
-f | —farmerkey | TEXT | False | Farmer Public Key (48 bytes) [Default: use the key from the current wallet] |
-c | —contract | TEXT | False | Pool Contract Address (64 chars) [Default: none] |
-G | —tmptoggle | None | False | Alternate tmpdir/tmpdir2 [Default: disabled] |
-K | —rmulti2 | INTEGER | False | Thread multiplier for P2 [Default: 1] |
-d | —final_dir | TEXT | True | Final directory after plot has been created |
-h | —help | None | False | Show 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]
Short Command | Long Command | Type | Required | Description |
---|---|---|---|---|
-r | —threads | INTEGER | False | Num threads [Default: 12] |
-n | —count | INTEGER | False | Number of plots to create [Default: 1] |
-f | —farmerkey | TEXT | False | Farmer Public Key (48 bytes) [Default: use the key from the current wallet] |
-p | —pool-key | TEXT | False | Pool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)] |
-c | —contract | TEXT | False | Pool Contract Address (64 chars) [Default: none] |
-t | —tmp_dir | TEXT | False | Temporary directory 1 (where most of the plot's temp data will be stored) [Default: in memory] |
-2 | —tmp_dir2 | TEXT | False | Temporary directory 2 [Default: same as tmp_dir ] |
-i | —id | TEXT | False | Plot ID [Default: generate a random ID] |
-w | —warmstart | None | False | Set to enable warm start [Default: disabled] |
—nonuma | None | False | Set to disable numa [Default: enabled] | |
—no-cpu-affinity | None | False | Set to disable assigning automatic thread affinity [Default: enabled] | |
-v | —verbose | None | False | Set to enable verbose output [Default: disabled] |
-d | —final_dir | TEXT | True | Final directory after plot has been created |
—compress | INTEGER | False | Compression level, 0-9 are accepted [Default: 1] | |
—device | INTEGER | False | The CUDA device index (typically 0 or 1), set if more than one GPU is installed [Default: 0] | |
—no-direct-downloads | None | False | Set to disable allocation of host tables using pinned buffers [Default: enabled] | |
-h | —help | None | False | Show a help message and exit |
ramplot
Functionality: Use the BladeBit RAM plotter
Usage: chia plotters bladebit ramplot [OPTIONS]
Short Command | Long Command | Type | Required | Description |
---|---|---|---|---|
-r | —threads | INTEGER | False | Num threads [Default: 12] |
-n | —count | INTEGER | False | Number of plots to create [Default: 1] |
-f | —farmerkey | TEXT | False | Farmer Public Key (48 bytes) [Default: use the key from the current wallet] |
-p | —pool-key | TEXT | False | Pool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)] |
-c | —contract | TEXT | False | Pool Contract Address (64 chars) [Default: none] |
-i | —id | TEXT | False | Plot ID [Default: generate a random ID] |
-w | —warmstart | None | False | Set to enable warm start [Default: disabled] |
—nonuma | None | False | Set to disable numa [Default: enabled] | |
—no-cpu-affinity | None | False | Set to disable assigning automatic thread affinity [Default: enabled] | |
-v | —verbose | None | False | Set to enable verbose output [Default: disabled] |
-d | —final_dir | TEXT | True | Final directory after plot has been created |
—compress | INTEGER | False | Compression level, 0-9 are accepted [Default: 1] | |
-h | —help | None | False | Show a help message and exit |
diskplot
Functionality: Use the BladeBit disk plotter
Usage: chia plotters bladebit diskplot [OPTIONS]
Short Command | Long Command | Type | Required | Description |
---|---|---|---|---|
-r | —threads | INTEGER | False | Num threads [Default: 12] |
-n | —count | INTEGER | False | Number of plots to create [Default: 1] |
-f | —farmerkey | TEXT | False | Farmer Public Key (48 bytes) [Default: use the key from the current wallet] |
-p | —pool-key | TEXT | False | Pool Public Key (48 bytes) [Default: use the key from the current wallet (self-pooling)] |
-c | —contract | TEXT | False | Pool Contract Address (64 chars) [Default: none] |
-i | —id | TEXT | False | Plot ID [Default: generate a random ID] |
-w | —warmstart | None | False | Set to enable warm start [Default: disabled] |
—nonuma | None | False | Set to disable numa [Default: enabled] | |
-v | —verbose | None | False | Set to enable verbose output [Default: disabled] |
-d | —final_dir | TEXT | True | Final directory after plot has been created |
—no-cpu-affinity | None | False | Set to disable assigning automatic thread affinity [Default: enabled] | |
—cache | INTEGER | False | Size of cache to reserve for I/O | |
—f1-threads | INTEGER | False | Override the default thread count (12) for F1 generation | |
—fp-threads | INTEGER | False | Override the default thread count (12) for forward propagation | |
—c-threads | INTEGER | False | Override the default thread count (12) for C table processing | |
—p2-threads | INTEGER | False | Override the default thread count (12) for Phase 2 | |
—p3-threads | INTEGER | False | Override the default thread count (12) for Phase 3 | |
—alternate | None | False | Set to halve the temp2 cache size requirements by alternating bucket writing methods between tables | |
-t | —tmp_dir | TEXT | True | Temporary directory 1 (where most of the plot's temp data will be stored) |
-2 | —tmp_dir2 | TEXT | False | Temporary directory 2 [Default: same as tmp_dir ] |
-u | —buckets | INTEGER | False | Number of buckets [Default: 256] |
-m | —memo | TEXT | False | Memo variable |
—no-t1-direct | None | False | Set to disable direct I/O on the temp 1 directory | |
—no-t2-direct | None | False | Set to disable direct I/O on the temp 2 directory | |
—compress | INTEGER | False | Compression level, 0-9 are accepted [Default: 1] | |
-h | —help | None | False | Show a help message and exit |
simulate
Functionality: Determine your farm's maximum capacity; this command is only avaible with the standalone version of BladeBit.
MadMax-Plotter — Linux guide
Switch to the user and cwd into the correct home directory:
$ sudo su plotter $ cd $ git clone -b pool-puzzles https://github.com/madMAx43v3r/chia-plotter.git
The output should look like this:
Cloning into ‘chia-plotter’.
remote: Enumerating objects: 2092, done.
remote: Counting objects: 100% (946/946), done.
remote: Compressing objects: 100% (408/408), done.
remote: Total 2092 (delta 697), reused 612 (delta 537), pack-reused 1146
Receiving objects: 100% (2092/2092), 786.22 KiB | 4.23 MiB/s, done.
Resolving deltas: 100% (1196/1196), done.
Enter the directory and execute some necessary commands to install requirements and compile the tool:
$ git submodule update —init
Submodule ‘lib/BLAKE3’ (https://github.com/BLAKE3-team/BLAKE3.git) registered for path ‘lib/BLAKE3’
Submodule ‘lib/bls-signatures’ (https://github.com/madMAx43v3r/bls-signatures.git) registered for path ‘lib/bls-signatures’
Submodule ‘lib/libbech32’ (https://github.com/dcdpr/libbech32.git) registered for path ‘lib/libbech32’
Cloning into ‘/home/plotter/chia-plotter/lib/BLAKE3’.
Cloning into ‘/home/plotter/chia-plotter/lib/bls-signatures’.
Cloning into ‘/home/plotter/chia-plotter/lib/libbech32’.
Submodule path ‘lib/BLAKE3’: checked out ‘037de38bfec4e813ab6189a50cb7c4cbae47268a’
Submodule path ‘lib/bls-signatures’: checked out ‘d9e42922e4a21fe8fc50733b93c16f582022621f’
Submodule path ‘lib/libbech32’: checked out ‘954b14fe81602dde0cf5cb6d45208403160fb76c’
$ ./make_devel.sh
This command will produce a lot of output while compiling. In the end, you should get a message indicating the compile was successful:
[. ]
[ 99%] Built target bls
[100%] Built target chia_plot
Try to call the program and get the usage help information:
$ ./build/chia_plot —help
If you can see the following line in the output, you have successfully built the chia-plotter version compatible with pool plots:
-c, —contract arg Pool Contract Address (64 chars)
- Getting your keys and jumping in the pool
$ chia plotnft create -s local
It can take a little while until the transaction is confirmed. Once it is, execute:
$ chia plotnft show
Find the P2 singletom address (pool contract address) and save it for later — it should look something like this:
P2 singleton address (pool contract address for plotting): xch1[. ]err
The other required key is the «Farmer public key». Execute the following statement to get it:
$ chia keys show
Note the Farmer public key and save it for later. Ignore the «Pool public key»! «It is not the droid you’re looking for.»
- Time to PLOT!
You can create a RAMdisk by using:
$ sudo mkdir /mnt/ramdisk $ sudo mount -t tmpfs -o rw,size=110G tmpfs /mnt/ramdisk
This is only temporary, so if you want the RAMdisk to be available after reboots, you have to modify your /etc/fstab file and add the lines.
Note: The RAMdisk is absolutely optional! But having two temp directories is not. While they can be on the same device, it is strongly recommended to use two different devices on a fast controller with high I/O available.
$ cd /home/plotter/chia-plotter/build $ ./chia_plot -n 1 -r 16 —tmpdir /mnt/temp1/ —tmpdir2 /mnt/temp2/ —finaldir /mnt/final/farm/ -c xch1[. ]err -f b9012[. ]649b
The plotting should be in progress now. Depending on your setup, this may take from 30 minutes to several hours or even longer (when plotting on HDDs). Be patient until the process is done and the plot has been moved to it’s final destination.
- -n, —count arg — Number of plots to create (default = 1, -1 = infinite)
- -r, —threads arg — Number of CPU threads, please keep in mind, that Windows also requires some threads! (default = 4)
- -t, —tmpdir arg — Temporary directory (recommended to use a directory on the SSD) minimum required free space:
Подскажите плз, в чиа mad maxplotter настройка Thread Multiplier for
Правда, что срок окупаемости фермы с учётом сжатия плотов сейчас составляет 2.5-3.5 года?
Какие есть? OG когда-то были. Так вот не они.
кстати, на какой бирже лучше торговать чиа? Где наименьшая комса на вывод?
Есть простой способ поставить ноду на диск D??
Привет. Ктото пытался делать плоттинг Блейбит РАМ плот? Появилась возможность попробовать а он висит на нуле уже час. В логах только начальный конфиг, никаких действий как буд.