User Tools

Site Tools


guides:plotting:virtualplots

Virtual Plots

Although k-32 is by far the most used k-size, chia allows us to plot big k-plots. As the number of proofs is directly proportional to the plot size in bytes, there is limited incentives on the revenue side to using larger k-plots. On the cost side however, using big k-plots offers the possibility of an advantage in terms of HDD power-saving. A k-32 has double the disk reads per byte and is accessed by the plot-filter twice more than a k-33, and four times for than a k-34, and sixteen times more than a k-36, etc. One problem in leveraging these benefits has been that in order to fill up a drive to make best use of the capacity, a mixed bag of multi-k plots is required (see image below), resulting in still too much disk io to use certain power saving modes.

Drive Capacity Plotmix Available GB Total ChiaPos GB GB Free
5TB 35,37 4655.82 4615.43 40.39
8TB 32,33,34,35,36,37 7449.96 7182.09 267.86
12TB 32,33,34,35,36,38 11173.45 11099.22 74.33
14TB 32,33,34,35,37,38 13036.19 13013.69 22.50
16TB 32,33,34,35,36,37,38 14898.99 14830.75 68.24
18TB 32,35,39 16760.75 16690.69 70.06

The Virtual Plot method tries to enhance these cost savings to the fullest, by leveraging the fact that both the plotID seed and the k-size are an input in the deterministic proof-construction of the plot format. This way, a single drive can host a variety of multiple (strictly) different k-sizes that share a single plotID, which is consulted by the plot-filter as if it were a single (hence, “virtual”) plot. This means that any HDD using this method is accessed only ~18 (9216/512) times per day with the current plot filter. This allows us to put HDDs into standby_z (spin-down) or idle_c (reduce rpm), saving 80% and 50% respectively compared to drives filled with only C0 k-32s.

Whenever a signage point arrives, the harvester process checks the plot filter for plots passing. This plot filter check is done purely against the plotID, and is done in memory/cached, so no disk io is needed for it. When a plot passes the plot filter, the harvester will look up qualities from the plot, and that's when the disk io starts. With the current plot filter, a single plot is expected to pass only once every 512 signature points, or once every 80 minutes. This means that if you have an 18TB drive filled with 165 k-32s, you have 165 different plotIDs per disk and you'll have a plot passing every 30 seconds or so requiring disk io. The disk will not be able to sleep. If, however, you have a single plotID per disk, your disk will only have to wake once every 80 minutes. It can sleep the rest of the time, which is much more power efficient.

Note that standby_z leads to increased wear on spin-up. Most HDDs are rated at a limit of 50k spin-ups, so with 18 start/stop cycles a day (plot-filter 512) that shoud last ~7,6 years and with 36 start/stop cycles (plot-filter 256) one would hit the limit in ~3,8 years.

Who is this for

With the strong proliferation of compressed plots and their increased returns, why should anyone consider this method? For those who meet all the hardware requirements for farming compressed plots on large capacity drives, generally compression is most profitable method up to a retail electricity price of $0.25/kWh.

The virtual plot method may still be considered by a diverse set of farmers. It offers an alternative to the direction of compressed plots by using less, rather than more electricity. A good fit would be with farmers on small drives, with high electricity prices. But it also allows for more complex methods, such as using idle_c during winter, while switching to standby_z in summer to reduce electricity used for AC. Admittedly, the plotting requirements make this method prohibitive to many.

It is in recognition of the large variety of farmers that we try to bring attention to this method.

How to plot

Using the official ChiaPos

  1. create a plot using: chia plots create -k 38 -n 1 -c xxx -f yyy -x -t … -2 … -d … -r <threads> -u <buckets>
  2. save the plot_id and the memo displayed from the output of the first command
  3. create the following plots with the same plot_id but different k-size using ProofOfSpace create -k <size> -i <plot_id> -m <memo> -f <plot_filename> -t … -2 … -d …

Alternatively, plots of large k can be created using https://github.com/vladimirttt123/chiaposht.

Interested in learning more? You will find many friendly SpaceFarmers to help you in our Discord!

Pooling vs Solo

Pool difficulty has no effect on the amount of disk spinups, as pool difficulty is only applied after the plot filter and after quality lookups. Quality lookups should cause your disk to spin up, but they are only occur before pool difficulty comes into play.

Spin-up and look-up times

In the table below, we have sampled some start-up times for different drives and configurations. Note that they have all performed well under the required ~28 seconds.

Disk-type start-time (sec)
6Tb MD04ACA600 11-12
14Tb MG07ACA14TE 10.9
WD Elements 12Tb 8.4-9.5
Seagate 10Tb usb backup+hub 10.7

Proof collision

As mentioned earlier, a virtual plot is constructed using the fact that both the plotID (as seed) and the k-size (k-size+4 bit-value) create a plot deterministically (see “Full algorithm” section). Therefore, e.g. a k-33 and a k-34 plot with the same plotID are equally different from eachother than two plots of matching k-size and a different plotID.

guides/plotting/virtualplots.txt · Last modified: 2024/02/09 06:55 by vleesbanaan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki