Configuration - ericaltendorf/plotman Wiki

The default configuration file used as a starting point is located here.

Follow this guide to set up archiving: Archiving.


Starting with v0.4, plotman will check for configuration file versions. This will allow errors on upgrades and in the future perhaps automated assistance with migrating to new versions. The version is stored in the configuration as a top level key named version with a list of integers as the value. For example, the first version could be written explicitly as follows.

version: [0]

0 (< v0.4, implicit)

This is the 'original' version used by plotman. Versioning was not actually implemented and therefor this version is implicitly defined and not actually present in the configuration file. When migrating from the original configuration file to v1 you may prefer to backup your existing configuration, generate a new default configuration using plotman config generate, and then migrate your settings manually.

1 (v0.4)


The log: and archive: keys have been moved. See below for their new locations and forms.


The configuration of the archiving mode has changed significantly and existing configurations will not work. While helpful for some, the use of rsync and rsyncd is certainly not applicable to all scenarios, especially local archival. The new mechanism provides some builtin preset archival target definitions but also allows definition of arbitrary scripts for both the identification of the available directories and their free space as well as the actual transfer command.

Presets are provided for both local rsync and remote rsyncd setups. Note that the archival configuration section has moved to the top level and has been renamed for consistency.

  target: rsyncd
  index: 1
    site_root: /farm/sites
    user: altendky
    host: server
    rsync_port: 12000
    site: sites
  target: local_rsync
  index: 0
    site_root: /farm/sites

A complete list of the overrideable environment variables can be found in the target definitions YAML file. Variables with null values are required to be specified when using that target definition. You should also refer to this file if you want to write your own target definitions by using the presets as examples. You can add your targets in your configuration file under archiving: target_definitions:.


The directories: log: parameter has been moved into a new top level logging: configuration group. This new group and each of its present children have defaults and therefore are not required to be specified.

        plots: /farm/logs/plots
        transfers: /farm/logs/transfers
        application: /farm/logs/plotman.log

2 (v0.5)

Available in PRs and on the development branch.


tmp_overrides has been moved to scheduling:.


As more plotters become available it becomes necessary to support their parameter variations. The plotting: section is being restructured accordingly. Please note that if you want to plot for pools you must confirm that the plotter you choose supports this and that you configure it appropriately.

Each plotter gets its own section for specific configuration settings. The type: field lets you pick which plotter plotman should launch, either chia or madmax. Despite only one being actively used, multiple plotter specific sections can be present in the configuration file at one time. Below is an example plotting: configuration section showing both plotters but telling plotman to use the original Chia Network plotter.

The farmer and either pool public keys or pool contract address are optional for the Chia Network plotter but are mandatory for the madMAx plotter. The other existing options from the plotting: group have moved inside the chia: group.

        # Your public keys: farmer and pool - Required for madMAx, optional for chia with mnemonic.txt
        # farmer_pk: ...
        # pool_pk: ...
        # pool_contract_address: ...

        # If you enable Chia, plot in *parallel* with higher tmpdir_max_jobs and global_max_jobs
        type: chia
                # The stock plotter:
                k: 32                # k-size of plot, leave at 32 most of the time
                e: False             # Use -e plotting option
                n_threads: 2         # Threads per job
                n_buckets: 128       # Number of buckets to split data into
                job_buffer: 3389     # Per job memory

        # If you enable madMAx, plot in *sequence* with very low tmpdir_max_jobs and global_max_jobs
                # madMAx plotter:
                n_threads: 4          # Default is 4, crank up if you have many cores
                n_buckets: 256        # Default is 256


tmp_overrides has been moved from scheduling:. Phase staggering can now be overridden per tmp directory. tmpdir_stagger_phase_major, tmpdir_stagger_phase_minor, and tmpdir_stagger_phase_limit can optionally be specified for each tmp directory.

                        tmpdir_stagger_phase_major: 1
                        tmpdir_stagger_phase_minor: 5
                        tmpdir_stagger_phase_limit: 1
                        tmpdir_max_jobs: 5