Giter Club home page Giter Club logo

chia-plotter's Introduction

chia-plotter (pipelined multi-threaded)

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.

Sponsored by Flexpool.io - Check them out if you're looking for a secure and scalable Chia pool.

Usage

Join the Discord for support: https://discord.gg/BswFhNkMzY

For <poolkey> and <farmerkey> see output of `chia keys show`.
To plot for pools, specify <contract> address via -c instead of <poolkey>, see `chia plotnft show`.
<tmpdir> needs about 220 GiB space, it will handle about 25% of all writes. (Examples: './', '/mnt/tmp/')
<tmpdir2> needs about 110 GiB space and ideally is a RAM drive, it will handle about 75% of all writes.
Combined (tmpdir + tmpdir2) peak disk usage is less than 256 GiB.
In case of <count> != 1, you may press Ctrl-C for graceful termination after current plot is finished,
or double press Ctrl-C to terminate immediately.

Usage:
  chia_plot [OPTION...]

  -k, --size arg       K size (default = 32, k <= 32)
  -x, --port arg       Network port (default = 8444, chives = 9699, mmx = 11337)
  -n, --count arg      Number of plots to create (default = 1, -1 = infinite)
  -r, --threads arg    Number of threads (default = 4)
  -u, --buckets arg    Number of buckets (default = 256)
  -v, --buckets3 arg   Number of buckets for phase 3+4 (default = buckets)
  -t, --tmpdir arg     Temporary directory, needs ~220 GiB (default = $PWD)
  -2, --tmpdir2 arg    Temporary directory 2, needs ~110 GiB [RAM] (default = <tmpdir>)
  -d, --finaldir arg   Final directory to copy plot in parallel (default = <tmpdir>)
  -s, --stagedir arg   Stage directory to write plot file (default = <tmpdir>)
  -w, --waitforcopy    Wait for copy to start next plot
  -p, --poolkey arg    Pool Public Key (48 bytes)
  -c, --contract arg   Pool Contract Address (62 chars)
  -f, --farmerkey arg  Farmer Public Key (48 bytes)
  -G, --tmptoggle      Alternate tmpdir/tmpdir2 (default = false)
  -D, --directout      Create plot directly in finaldir (default = false)
  -Z, --unique         Make unique plot (default = false)
  -K, --rmulti2 arg    Thread multiplier for P2 (default = 1)
      --version        Print version
      --help           Print help

Make sure to crank up <threads> if you have plenty of cores, the default is 4. Depending on the phase more threads will be launched, the setting is just a multiplier.

RAM usage depends on <threads> and <buckets>. With the new default of 256 buckets it's about 0.5 GB per thread at most.

-G option will alternate the temp dirs used while plotting to give each one, tmpdir and tmpdir2, equal usage. The first plot creation will use tmpdir and tmpdir2 as expected. The next run, if -n equals 2 or more, will swap the order to tmpdir2 and tmpdir. The next run swaps again to tmpdir and tmpdir2. This will occur until the number of plots created is reached or until stopped.

RAM disk setup on Linux

sudo mount -t tmpfs -o size=110G tmpfs /mnt/ram/

Note: 128 GiB System RAM minimum required for RAM disk.

How to Support

XCH: xch1w5c2vv5ak08pczeph7tp5xmkl5762pdf3pyjkg9z4ks4ed55j3psgay0zh

XFX: xfx1succfn2z3uwmq50ukztjanrvs9kw294mqn4lv22rk6tzmcu7e2xsyxyaa5

XCC: xcc16j65y35fs8u289nq6krcyehsmp5eqd4we493rxf36pg7eymcqrqqltsrat

Results

On a dual Xeon® E5-2650v2@2.60GHz R720 with 256GB RAM and a 3x800GB SATA SSD RAID0, using a 110G tmpfs for <tmpdir2>:

Click to expand
Number of Threads: 16
Number of Buckets: 2^8 (256)
Working Directory:   /mnt/tmp3/chia/tmp/ 
Working Directory 2: /mnt/tmp3/chia/tmp/ram/
[P1] Table 1 took 17.2488 sec
[P1] Table 2 took 145.011 sec, found 4294911201 matches
[P1] Table 3 took 170.86 sec, found 4294940789 matches
[P1] Table 4 took 203.713 sec, found 4294874801 matches
[P1] Table 5 took 201.346 sec, found 4294830453 matches
[P1] Table 6 took 195.928 sec, found 4294681297 matches
[P1] Table 7 took 158.053 sec, found 4294486972 matches
Phase 1 took 1092.2 sec
[P2] max_table_size = 4294967296
[P2] Table 7 scan took 15.5542 sec
[P2] Table 7 rewrite took 37.7806 sec, dropped 0 entries (0 %)
[P2] Table 6 scan took 46.7014 sec
[P2] Table 6 rewrite took 65.7315 sec, dropped 581295425 entries (13.5352 %)
[P2] Table 5 scan took 45.4663 sec
[P2] Table 5 rewrite took 61.9683 sec, dropped 761999997 entries (17.7423 %)
[P2] Table 4 scan took 44.8217 sec
[P2] Table 4 rewrite took 61.36 sec, dropped 828847725 entries (19.2985 %)
[P2] Table 3 scan took 44.9121 sec
[P2] Table 3 rewrite took 61.5872 sec, dropped 855110820 entries (19.9097 %)
[P2] Table 2 scan took 43.641 sec
[P2] Table 2 rewrite took 59.6939 sec, dropped 865543167 entries (20.1528 %)
Phase 2 took 620.488 sec
Wrote plot header with 268 bytes
[P3-1] Table 2 took 73.1018 sec, wrote 3429368034 right entries
[P3-2] Table 2 took 42.3999 sec, wrote 3429368034 left entries, 3429368034 final
[P3-1] Table 3 took 68.9318 sec, wrote 3439829969 right entries
[P3-2] Table 3 took 43.8179 sec, wrote 3439829969 left entries, 3439829969 final
[P3-1] Table 4 took 71.3236 sec, wrote 3466027076 right entries
[P3-2] Table 4 took 46.2887 sec, wrote 3466027076 left entries, 3466027076 final
[P3-1] Table 5 took 70.6369 sec, wrote 3532830456 right entries
[P3-2] Table 5 took 45.5857 sec, wrote 3532830456 left entries, 3532830456 final
[P3-1] Table 6 took 75.8534 sec, wrote 3713385872 right entries
[P3-2] Table 6 took 48.8266 sec, wrote 3713385872 left entries, 3713385872 final
[P3-1] Table 7 took 83.2586 sec, wrote 4294486972 right entries
[P3-2] Table 7 took 56.3803 sec, wrote 4294486972 left entries, 4294486972 final
Phase 3 took 733.323 sec, wrote 21875928379 entries to final plot
[P4] Starting to write C1 and C3 tables  
[P4] Finished writing C1 and C3 tables   
[P4] Writing C2 table
[P4] Finished writing C2 table
Phase 4 took 84.6697 sec, final plot size is 108828428322 bytes
Total plot creation time was 2530.76 sec 

How to Verify

To make sure the plots are valid you can use the ProofOfSpace tool from chiapos:

git clone https://github.com/Chia-Network/chiapos.git
cd chiapos && mkdir build && cd build && cmake .. && make -j8
./ProofOfSpace check -f plot-k32-???.plot [num_iterations]

How to update to latest version

cd chia-plotter
git checkout master
git pull
git submodule update --init
./make_devel.sh

Future Plans

I do have some history with GPU mining, back in 2014 I was the first to open source a XPM GPU miner, which was about 40x more efficient than the CPU miner. See my other repos.

As such, it's only a matter of time until I add OpenCL support to speed up the plotter even more, keeping most of the load off the CPUs.

Dependencies

  • cmake (>=3.14)
  • libsodium-dev

Install

Windows

Binaries built by stotiks can be found here: https://github.com/stotiks/chia-plotter/releases

Arch Linux

First, install dependencies from pacman:

sudo pacman -S cmake libsodium gmp gcc11

Then, clone and compile the project:

# Checkout the source and install
git clone https://github.com/madMAx43v3r/chia-plotter.git
cd chia-plotter

git submodule update --init
./make_devel.sh
./build/chia_plot --help
CentOS 7
git clone https://github.com/madMAx43v3r/chia-plotter.git
cd chia-plotter

git submodule update --init
sudo yum install epel-release -y
sudo yum install cmake3 libsodium libsodium-static -y
ln /usr/bin/cmake3 /usr/bin/cmake
# Install a package with repository for your system:
# On CentOS, install package centos-release-scl available in CentOS repository:
sudo yum install centos-release-scl -y
# Install the collection:
sudo yum install devtoolset-7 -y
# Start using software collections:
scl enable devtoolset-7 bash
./make_devel.sh
./build/chia_plot --help
Clear Linux
sudo swupd update
sudo swupd bundle-add c-basic devpkg-libsodium git wget

echo PATH=$PATH:/usr/local/bin/ # for statically compiled cmake if not already in your PATH

# Install libsodium
cd /tmp
wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar -xvf LATEST.tar.gz
cd libsodium-stable
./configure
make && make check
sudo make install
# Checkout the source and install
cd ~/
git clone https://github.com/madMAx43v3r/chia-plotter.git 
cd ~/chia-plotter
git submodule update --init
./make_devel.sh
./build/chia_plot --help
Ubuntu 20.04
sudo apt install -y libsodium-dev cmake g++ git build-essential
# Checkout the source and install
git clone https://github.com/madMAx43v3r/chia-plotter.git 
cd chia-plotter

git submodule update --init
./make_devel.sh
./build/chia_plot --help

The binaries will end up in build/, you can copy them elsewhere freely (on the same machine, or similar OS).

Debian 10 ("buster")

Make sure to add buster-backports to your sources.list otherwise the installation will fail because an older cmake version. See the debian backport documentation for reference.

# Install cmake 3.16 from buster-backports
sudo apt install -t buster-backports cmake
sudo apt install -y libsodium-dev g++ git
# Checkout the source and install
git clone https://github.com/madMAx43v3r/chia-plotter.git 
cd chia-plotter

git submodule update --init
./make_devel.sh
./build/chia_plot --help

The binaries will end up in build/, you can copy them elsewhere freely (on the same machine, or similar OS).

macOS

First you need to install the Brew package manager and Xcode OR Xcode Command Line Tools.

# Download Xcode Command Line Tools (skip if you already have Xcode)
xcode-select --install

# Now download chia-plotter's dependencies
brew install libsodium cmake git autoconf automake libtool wget
brew link cmake
git clone https://github.com/madMAx43v3r/chia-plotter.git 
cd chia-plotter
git submodule update --init
./make_devel.sh
./build/chia_plot --help

Linking libsodium should be performed automatically, but in case of failure please follow these instructions:

# If you downloaded Xcode run these:
sudo ln -s /usr/local/include/sodium.h /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
sudo ln -s /usr/local/include/sodium /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/

# If you downloaded CommandLineTools run these:
sudo ln -s /usr/local/include/sodium.h /Library/Developer/CommandLineTools/usr/include
sudo ln -s /usr/local/include/sodium /Library/Developer/CommandLineTools/usr/include

Confirm which directory you have on YOUR Mac before applying following commands

# For x86_64 Macs
wget https://raw.githubusercontent.com/facebookincubator/fizz/master/build/fbcode_builder/CMake/FindSodium.cmake -O /usr/local/opt/cmake/share/cmake/Modules/FindSodium.cmake

or

# For ARM64 (M1) Macs
wget https://raw.githubusercontent.com/facebookincubator/fizz/master/build/fbcode_builder/CMake/FindSodium.cmake -O /opt/homebrew/Cellar/cmake/*/share/cmake/Modules/FindSodium.cmake

If a maximum open file limit error occurs (as default OS setting is 256, which is too low for default bucket size of 256), run this before starting the plotter

ulimit -n 3000

This file limit change will only affect the current session.

Running in a Docker container

In some setups and scenarios, it could be useful to run your plotter inside a Docker container. This could be potentially useful while running chia-plotter in Windows.

To do so, install Docker on your computer and them run the following command:

docker run \
  -v <path-to-your-tmp-dir>:/mnt/harvester \
  -v <path-to-your-final-dir>:/mnt/farm \
  odelucca/chia-plotter \
    -t /mnt/harvester/ \
    -d /mnt/farm/ \
    -p <pool-key> \
    -f <farm-key> \
    -r <number-of-CPU-cores>

💡 You can provide any of the plotter arguments after the image name (odelucca/chia-plotter)

In a Linux benchmark, we were able to find that running in Docker is only 5% slower than running in native OS.

For Windows users, you should check if your Docker configuration has any RAM or CPU limits. Since Docker runs inside HyperV, that could potentially constrain your hardware usage. In any case, you can set the RAM limits with the -m flag (after the docker run command).

Regarding multithread in Docker

While running in Windows, you may need to proper configure your Docker to allow multi CPUs. You can do so by following this article

In a nutshell, you could also pass the --cpus flag to your docker run command in order to achieve the same result.

So, for example, the following command...

docker run \
  -v <path-to-your-tmp-dir>:/mnt/harvester \
  -v <path-to-your-final-dir>:/mnt/farm \
  -m 8G \
  --cpus 8 \
  odelucca/chia-plotter \
    -t /mnt/harvester/ \
    -d /mnt/farm/ \
    -p <pool-key> \
    -f <farm-key> \
    -r 8

...would run your plotter with 8 CPU cores and 8GB of RAM.

Building a Docker container

Make sure your submodules are up-to-date by running git submodule update --init, then simply build with docker build .


Known Issues

  • Needs at least cmake 3.14 (because of bls-signatures)

How to install latest cmake on Ubuntu 18.04

chia-plotter's People

Contributors

alexhu98 avatar andriihlukhanyk avatar asukahan avatar avsync avatar carlfarrington avatar dartellum avatar fchirica avatar fermosan avatar gtanadam avatar hlung avatar hugepants avatar jesterjunk avatar limsandy avatar lizelive avatar madmax43v3r avatar mharsch avatar mrph28 avatar o0ghost0o avatar paninaro avatar pieniacy avatar pospelov-v avatar randomblock1 avatar risner avatar roxleopardo avatar sebmoore avatar stotiks avatar thiagottjv avatar timporter avatar xearl4 avatar yrjyrj123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chia-plotter's Issues

CMake Error at CMakeLists.txt:5 (add_subdirectory):

-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:5 (add_subdirectory):
The source directory

/home/mining/chia-plotter-master/lib/bls-signatures

does not contain a CMakeLists.txt file.

-- Configuring incomplete, errors occurred!
See also "/home/mining/chia-plotter-master/build/CMakeFiles/CMakeOutput.log".

cannot build on osx due to pthread

/Volumes/null/chia-plotter/chia-plotter/include/chia/Thread.h:91:4: error: no matching function for call to 'pthread_setname_np'
pthread_setname_np(pthread_self(), thread_name.c_str());
^~~~~~~~~~~~~~~~~~
/usr/include/pthread.h:500:5: note: candidate function not viable: requires 1 argument, but 2 were provided
int pthread_setname_np(const char*);
^

Can't complie plotter on centos8

[ 97%] Building CXX object lib/bls-signatures/src/CMakeFiles/runbench.dir/test-bench.cpp.o
/usr/bin/ar: /usr/lib64/libgmp.so: File format not recognized
make[2]: *** [lib/bls-signatures/src/CMakeFiles/combined_custom.dir/build.make:79: lib/bls-signatures/src/CMakeFiles/combined_custom] Error 1
[ 97%] Built target test_phase_2
make[1]: *** [CMakeFiles/Makefile2:537: lib/bls-signatures/src/CMakeFiles/combined_custom.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Installed Packages
gmp.x86_64 1:6.1.2-10.el8

missing library

clang-12: warning: argument unused during compilation: '-L/usr/local/opt/llvm/lib' [-Wunused-command-line-argument] In file included from /Volumes/empty9/chia-plotter/src/chia_plot.cpp:12: /Volumes/empty9/chia-plotter/include/chia/chia_filesystem.hpp:20:10: fatal error: 'filesystem.hpp' file not found #include "filesystem.hpp" ^~~~~~~~~~~~~~~~ 1 error generated.

terminate called recursively

Phase 2 took 507.212 sec
Wrote plot header with 268 bytes
[P3-1] Table 2 took 71.1062 sec, wrote 3429399034 right entries
[P3-2] Table 2 took 65.395 sec, wrote 3429399034 left entries, 3429399034 final
[P3-1] Table 3 took 75.6657 sec, wrote 3439913667 right entries
[P3-2] Table 3 took 68.9163 sec, wrote 3439913667 left entries, 3439913667 final
[P3-1] Table 4 took 72.711 sec, wrote 3466117221 right entries
[P3-2] Table 4 took 70.5899 sec, wrote 3466117221 left entries, 3466117221 final
[P3-1] Table 5 took 73.1488 sec, wrote 3533010945 right entries
[P3-2] Table 5 took 70.1412 sec, wrote 3533010945 left entries, 3533010945 final
terminate called recursively
terminate called after throwing an instance of 'Aborted (core dumped)

you may need a cast phase3.hpp

/Volumes/null/chia-plotter/include/chia/phase3.hpp:48:24: error: no matching function for call to 'min' const auto count = std::min(L_position - L_offset, L_buffer.size()); ^~~~~~~~ /usr/local/opt/llvm/bin/../include/c++/v1/algorithm:2594:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('unsigned long long' vs. 'unsigned long') min(const _Tp& __a, const _Tp& __b)

correction seems to be:
const auto count = std::min<unsigned long>(L_position - L_offset, L_buffer.size());

Installation of deps

I'm guessing the binary needs a bunch of libraries seeing as i can't launch this from the commandline. Can we have a make install file so that it can be launched from anywhere?

Actually i moved the chia_plot binary and launching it alone is fine. It just can't be launched with a path. Then you get the following error:

mist@fp-plotty5:~/chia-plotter$ ./build/chia_plot 80ee566ed528d0909a3d6ff700d64360ee10408afaf032355fffa51af740cb7525e304ddd7749d5e61d1e01a1cd328db a9409b401b4ffcb066cc80d96d869593526d636cdcf22d970e242b3498ed02ca04a13b7e16d1e90f863bd1d917d70ea4 /drive1/ /tmp/ramdisk/ 8
Number of Threads: 8
Number of Sort Buckets: 2^7 (128)
Pool Public Key: 80ee566ed528d0909a3d6ff700d64360ee10408afaf032355fffa51af740cb7525e304ddd7749d5e61d1e01a1cd328db
Farmer Public Key: a9409b401b4ffcb066cc80d96d869593526d636cdcf22d970e242b3498ed02ca04a13b7e16d1e90f863bd1d917d70ea4
Working Directory: /drive1/
Working Directory 2: /tmp/ramdisk/
Plot Name: plot-k32-2021-06-07-12-50-3a922a4e1416ea8b062c23b17315e72034714bbe8f429c1afe87bb362c4e859a
terminate called after throwing an instance of 'std::runtime_error'
what(): thread failed with: thread failed with: fwrite() failed
Aborted

Spreading the word…

I have only compiled, yesterday's version, as my hardware is old except my ETH rigs. Anyway, not an issue but letting you know I have spread your GitHub to a few Discord channels. Lots of testing is going on with various hardware. I plan on joining this testing to and your program may have changed what I purchase.

How many instances can we run in parallel? Or, should run? Even at 2 hrs a complete plot, running sequentially will only yield 12 plots. I was going with HP DL380, 128 GB RAM, and 25x SAS 15k 300 GB drives for temp drives. This would yield 40 to 50 plots (based on what others have done with simply setup). Suggestions?

make: *** No targets specified and no makefile found. Stop.

I have an issue,it seens no makefile
OS:ubuntu18.04
cmake version:3.20.3
,this is CLI print:

  • The CXX compiler identification is unknown
    CMake Error at CMakeLists.txt:3 (project):
    No CMAKE_CXX_COMPILER could be found.

    Tell CMake where to find the compiler by setting either the environment
    variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
    to the compiler, or to the compiler name if it is in the PATH.

-- Configuring incomplete, errors occurred!
See also "/chia-plotter/build/CMakeFiles/CMakeOutput.log".
See also "/chia-plotter/build/CMakeFiles/CMakeError.log".
make: *** No targets specified and no makefile found. Stop.
root@yui-virtual-machine:/chia-plotter#

cmake error log:

Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3

The output was:
No such file or directory

Can anyone solved it?

regards!

Staggering and "infinite loop"

I tried to manual staggering plot creation, my system, the 3975WR (32c/ 64t) with 256GB Ram, 6x 980 Pro Raid 0 (even overkill with this plotter), can sustain 3 plots at the same time if I start the new one right after Phase 1, do you think is possible to create something like swar plot manager? so to automate the spawn of a new plot after phase 1? And run it until we decide to stop? Thanks

thread failed with: fwrite() failed

Config:

root@fullnode-178:/mnt/plotter/chia-plotter-master/build# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 43 bits physical, 48 bits virtual
CPU(s): 56
On-line CPU(s) list: 0-55
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 28
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Model name: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
Stepping: 1
CPU MHz: 2399.998
BogoMIPS: 4799.99
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 896 KiB
L1i cache: 896 KiB
L2 cache: 7 MiB
L3 cache: 980 MiB
NUMA node0 CPU(s): 0-27
NUMA node1 CPU(s): 28-55

#temp disk size
/dev/sdb1 215G 1.6G 214G 1% /mnt/temp
#RAM disk size
tmpfs 119G 0 119G 0% /mnt/ram

** insteaded my key

root@fullnode-178:/mnt/plotter/chia-plotter-master/build# ./chia_plot ** ** /mnt/temp/ /mnt/ram/ 40 7

d[P1] Table 1 took 18.2994 sec
[P1] Table 2 took 113.407 sec, found 4295018656 matches
[P1] Lost 51548 matches due to 32-bit overflow.
[P1] Table 3 took 138.035 sec, found 4294994683 matches
[P1] Lost 27160 matches due to 32-bit overflow.
[P1] Table 4 took 161.754 sec, found 4295049757 matches
[P1] Lost 83006 matches due to 32-bit overflow.
[P1] Table 5 took 152.327 sec, found 4295069366 matches
[P1] Lost 102254 matches due to 32-bit overflow.
[P1] Table 6 took 157.915 sec, found 4295102891 matches
[P1] Lost 135102 matches due to 32-bit overflow.
[P1] Table 7 took 128.309 sec, found 4295063551 matches
Phase 1 took 870.071 sec
[P2] max_table_size = 4295102891
[P2] Table 7 scan took 10.7147 sec
[P2] Table 7 rewrite took 46.0822 sec, dropped 0 entries (0 %)
[P2] Table 6 scan took 26.1113 sec
[P2] Table 6 rewrite took 31.4663 sec, dropped 581375586 entries (13.5358 %)
[P2] Table 5 scan took 25.4418 sec
[P2] Table 5 rewrite took 29.9749 sec, dropped 762020496 entries (17.7418 %)
[P2] Table 4 scan took 25.6755 sec
[P2] Table 4 rewrite took 29.6732 sec, dropped 828927576 entries (19.2996 %)
[P2] Table 3 scan took 28.4565 sec
[P2] Table 3 rewrite took 29.3028 sec, dropped 855090576 entries (19.909 %)
[P2] Table 2 scan took 29.123 sec
terminate called after throwing an instance of 'std::runtime_error'
what(): thread failed with: thread failed with: fwrite() failed
Aborted (core dumped)

What's the fwirite() mean , how can i fix it

stats/timing results

figured it might be helpful to have some info on how this runs on other machines. here's my results so far - I'll add to this as I actually complete plots, for now this is just the results of phase 1 table 1.

machine: i9-10850k (10 cores / 20 threads) @ 5.0ghz, 64GB RAM
os: ubuntu 20.04 via wsl2 on win10
working directory (1 & 2): Samsung 980 Pro 2TB nvme m.2 ssd

code version @ commit 06a8f9

complete plot timings:

threads=18 buckets=7

  • phase1: 2932 seconds
  • phase2: 1153 seconds
  • phase3: 3660 seconds
  • phase4: 951 seconds

total: 8698 seconds

thread failed with: position out of bounds (phase 3)

get this at some point in phase 3, every single time without fail. Have not had a plot succeed yet using this.

spoken to a few other people with the same issue. not everyone gets it every time, but with frequency.
Screenshot from 2021-06-08 10-58-44

[Feature Request]: K33 Support

Due to having some awkward sized drives, I would love it if you could provide K33 and maybe K34 support.

This will help optimize drive space for the people without a pallet of drives.

Dual E5-2690 with RAMDisk is slow compare to others

I have a server which has dual E5-2690 I think it is the one: https://ark.intel.com/content/www/us/en/ark/products/64596/intel-xeon-processor-e5-2690-20m-cache-2-90-ghz-8-00-gt-s-intel-qpi.html
Physical cores: 8x2, threads: 16x2
It has 128GB DDR3 RAM, I created a RAMDisk with ImDisk Toolkit. Allocated 110GB for it. Path is /mnt/r/
Also two 2T M.2 NVME SSD. /mnt/d/ and /mnt/e but I only used one for this test.

I used WSL2 and the result was as below. I didn't even finish it as I think it was slow compare to others so I stopped it. Tried both 16 and 32 threads, not much different it seemed.

Number of Threads: 32
Number of Sort Buckets: 2^7 (128)
Pool Public Key:  xxxxxx
Farmer Public Key: xxxxxx
Working Directory:   /mnt/d/
Working Directory 2: /mnt/r/
Plot Name: plot-k32-2021-06-08-21-45-5e789c389f87f9e23df0c4a2af0b1e3558d369e55f3e2e162f4e12963c591b46
[P1] Table 1 took 170.16 sec
[P1] Table 2 took 803.987 sec, found 4294975885 matches
[P1] Lost 8503 matches due to 32-bit overflow.
[P1] Table 3 took 945.028 sec, found 4295069307 matches

I compared to my big brother's plotting on his PC, which has CPU 5800x. He dose not even use RAMDisk. However, the plotting speed is still faster than mine. When his PC was plotting at phase 1, its CPU has nearly 100% usage...
1623162732325

Mine did not hit 100% with 32 threads and even 50%. I didn't take the screenshot, might test again and do it tomorrow.

I also got another PC, which has the same problem. Somehow the CPU usage is just not 100%.
roy_new_pc_chia_plot

Is it normal? Did I miss anything..?

can't compile

gcc-8.4.1-1.el8.x86_64
libgcc-8.4.1-1.el8.x86_64
gcc-c++-8.4.1-1.el8.x86_64
cmake-filesystem-3.18.2-9.el8.x86_64
cmake-3.18.2-9.el8.x86_64
cmake-data-3.18.2-9.el8.noarch
make-4.2.1-10.el8.x86_64
cmake-rpm-macros-3.18.2-9.el8.noarch
glibc-2.28-151.el8.x86_64
glibc-all-langpacks-2.28-151.el8.x86_64
glibc-devel-2.28-151.el8.x86_64
glibc-headers-2.28-151.el8.x86_64
glibc-common-2.28-151.el8.x86_64


[ 96%] Built target test_disk_sort
[ 96%] Linking CXX executable runbench
[ 96%] Built target runbench
[ 97%] Linking CXX executable test_phase_4
[ 97%] Built target test_phase_4
[ 97%] Linking CXX executable test_phase_2
[ 97%] Built target test_phase_2
[ 98%] Linking CXX executable test_phase_3
[ 98%] Built target test_phase_3
[ 98%] Linking CXX executable test_phase_1
[ 98%] Built target test_phase_1
[ 98%] Linking CXX executable runtest
[ 98%] Built target runtest
make: *** [Makefile:149: all] Error 2


Run Build Command(s):/usr/bin/gmake cmTC_d89bc/fast && /usr/bin/gmake -f CMakeFiles/cmTC_d89bc.dir/build.make CMakeFiles/cmTC_d89bc.dir/build
gmake[1]: Entering directory '/root/chia-plotter/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_d89bc.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -fPIE -o CMakeFiles/cmTC_d89bc.dir/CheckFunctionExists.c.o -c /usr/share/cmake/Modules/CheckFunctionExists.c
Linking C executable cmTC_d89bc
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d89bc.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_d89bc.dir/CheckFunctionExists.c.o -o cmTC_d89bc -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
gmake[1]: *** [CMakeFiles/cmTC_d89bc.dir/build.make:106: cmTC_d89bc] Error 1
gmake[1]: Leaving directory '/root/chia-plotter/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:140: cmTC_d89bc/fast] Error 2

Ubuntu 20.04: Compile error

[ 99%] Built target test_phase_2 In file included from /home/mist/chia-plotter/lib/bls-signatures/src/bls.hpp:18, from /home/mist/chia-plotter/src/chia_plot.cpp:13: /home/mist/chia-plotter/lib/bls-signatures/src/privatekey.hpp:21:10: fatal error: gmp.h: No such file or directory 21 | #include <gmp.h> | ^~~~~~~ compilation terminated.

libsodium installed and running these versions:

mist@fp-plotty5:~/chia-plotter$ cmake --version
cmake version 3.16.3

CMake suite maintained and supported by Kitware (kitware.com/cmake).
mist@fp-plotty5:/chia-plotter$ gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1
20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I did do the git submodule update --init ahead, unsure why i would be getting a missing key error?

Plotter is writing to parent directory of specified working directory

caleb@CORUSCANT:~$ sudo ./plot.sh
Number of Threads: 10
Number of Sort Buckets: 2^7 (128)
Pool Public Key:   <redacted>
Farmer Public Key: <redacted>
Working Directory:   /mnt/x
Working Directory 2: /mnt/x
Plot Name: <redacted>

Expected result: .tmp files are written to /mnt/x

Actual result: .tmp files are written to /mnt

P1 bug?

[Ubuntu 20.04] Usually it runs ok but once I've got this:

...
[P1] Table 1 took 31.3585 sec
[P1] Table 2 took 238.133 sec, found 4294955647 matches
[P1] Table 3 took 321.463 sec, found 4294890381 matches
[P1] Table 4 took 439.632 sec, found 4294860452 matches
[P1] Table 5 took 354.412 sec, found 4294616104 matches
[P1] Table 6 took 341.178 sec, found 4294218992 matches
[P1] Table 3 took 350.752 sec, found 4294860101 matches
[P1] Table 3 took 350.752 sec, found 4294860101 matches
[P1] Table 3 took 350.752 sec, found 4294860101 matches
[P1] Table 3 took 350.752 sec, found 4294860101 matches
[P1] Table 3 took 350.752 sec, found 4294860101 matches

[P1] Table 7 took 283.603 sec, found 4293436511 matches
Phase 1 took 2009.81 sec
[P2] max_table_size = 4294967296
[P2] Table 7 scan took 30.1556 sec
...

HELP

can someone make a video on how to run it on windows?

Segmentation fault in Windows 10

Hello,

I compiled the source using msys2/mingw64 on Windows 10.
The execution stops just after P1 table is created with error: segmentation fault.
Data is successfully created in temp drive.

Below some details about the execution with gdb.

Working Directory:   f:/
Working Directory 2: f:/
Plot Name: plot-k32-2021-06-08-14-02-53a515aecd736d6f9ab0a2d3f7a12eb62a907d5416ceab1b87bfe5ab419d84cb
[New Thread 15752.0x4db8]
[New Thread 15752.0x3d00]
[New Thread 15752.0x2edc]
[New Thread 15752.0x36b0]
[New Thread 15752.0x26dc]
[New Thread 15752.0x380]
[New Thread 15752.0x6ec]
[New Thread 15752.0x3d34]
[New Thread 15752.0x384c]
[New Thread 15752.0x19a4]
[New Thread 15752.0x4448]
[New Thread 15752.0x3c8]
[P1] Table 1 took 67.874 sec
[Thread 15752.0x4e6c exited with code 0]
[Thread 15752.0x2cf4 exited with code 0]
[Thread 15752.0x3fa4 exited with code 0]
[Thread 15752.0x2edc exited with code 0]
[Thread 15752.0x26dc exited with code 0]
[Thread 15752.0x6ec exited with code 0]
[Thread 15752.0x3d34 exited with code 0]
[Thread 15752.0x384c exited with code 0]
[Thread 15752.0x19a4 exited with code 0]
[Thread 15752.0x4448 exited with code 0]
[Thread 15752.0x3c8 exited with code 0]
[Thread 15752.0x4db8 exited with code 0]
[Thread 15752.0x36b0 exited with code 0]
[Thread 15752.0x380 exited with code 0]
[Thread 15752.0x3d00 exited with code 0]
[New Thread 15752.0x3b2c]
[New Thread 15752.0x27a4]
[New Thread 15752.0x44e4]
[New Thread 15752.0x166c]
[New Thread 15752.0x271c]
[New Thread 15752.0x30b4]
[New Thread 15752.0x4b4]
[New Thread 15752.0x3ca4]
[New Thread 15752.0xe30]
[New Thread 15752.0xe9c]
[New Thread 15752.0x3568]
[New Thread 15752.0x4554]
[New Thread 15752.0x3ab0]
[New Thread 15752.0x2968]
[New Thread 15752.0x246c]
[New Thread 15752.0x1b88]
[New Thread 15752.0x4a0c]
[New Thread 15752.0x2130]
[New Thread 15752.0x1890]
[New Thread 15752.0x3e90]
[New Thread 15752.0x47a8]
[New Thread 15752.0x4e70]
[New Thread 15752.0x3350]
[New Thread 15752.0x3ec8]
[New Thread 15752.0x2b40]
[New Thread 15752.0x3288]
[New Thread 15752.0x4b34]
[New Thread 15752.0xca4]
[New Thread 15752.0x1e18]
[New Thread 15752.0xabc]

Thread 23 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 15752.0x4b4]
0x00007ff75387d080 in blake3_compress_xof_sse41 ()
(gdb)

P3 "left entry" very slow

32 threads on a 2990wx, ramdisk, 970 evo+ in raid0

others seem to be getting more consistent speeds between left and right entries, 50s+/- for either one.

Screenshot from 2021-06-09 01-45-29

[Feature Request] Destination Drive

Hello, Thanks for this amazing plotter, I tested it on my machine and it works very well (3800 seconds for 1 plot)
I was wondering if you could add an argument so that I can specify a destination drive where the final plot will be copied to.
This would make it easier for me to try and automate it on my plotting machine.

Ran 27ebfcb and it finnished in 5289s

Just wanted let you know! Nice work!
The server was rather busy at the time too so I guess I can get around 10% better time. Plotted on raid5 with 6 x 800gb enterprise sas ssd's. got nvme too but didn't run on them now.

I'm not sure how to put in the pool key etc yet but I suppose that's coming :)
In testnet its apparently possible to plot for pools now, I'm going to replot at soon as it get released and hopefully with your code instead.

I was able to stack the original plotter and get one every 1h, I think I should be able to stack this 2 maybe 3 times :)

(27ebfcb)

Phase 1 took 2176.96 sec
real    36m17.068s
user    344m11.493s
sys     27m20.482s

Phase 2 took 1610.95 sec
real    26m51.067s
user    105m8.773s
sys     8m52.344s

Phase 3 took 1371.42 sec, wrote 21877156374 entries to final plot
real    22m51.629s
user    137m53.501s
sys     20m29.217s

Phase 4 took 129.688 sec, final plot size is 108835549588 bytes
real    2m9.796s
user    9m27.843s
sys     0m37.823s

thread failed with: input not sorted

root@Lappy2:/home/mk/chia-plotter# export DRIVE=q; /home/mk/chia-plotter-2/build2/chia_plot ac8e0... 85b... /mnt/$DRIVE/ChiaPlotter/ /mnt/$DRIVE/ChiaPlotter/ 2 7 2>&1 | tee /mnt/c/Users/mk/.chia/mainnet/plotter/chia-plotter-$(uuid).log

Number of Threads: 2
Number of Sort Buckets: 2^7 (128)
Pool Public Key:   ac8e...
Farmer Public Key: 85b9...
Working Directory:   /mnt/q/ChiaPlotter/
Working Directory 2: /mnt/q/ChiaPlotter/
Plot Name: plot-k32-2021-06-08-18-20-4e77484a240204ce331b400dc406491b1a8fa9ce422de8ce8c1ff720cdb8a27b
[P1] Table 1 took 2641.82 sec
terminate called after throwing an instance of 'std::runtime_error'
  what():  thread failed with: input not sorted

Running commit 7e768ca
On Windows WSL1 Ubuntu 20.04.2 LTS (Focal Fossa) @ 4.4.0-19041-Microsoft
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

Can't install

Hi =)

I'm trying to install the plotter with the make-devel script, but getting this error:

[ 96%] Building C object _deps/relic-build/src/CMakeFiles/relic_s.dir/low/easy/relic_fb_trc_low.c.o
[ 97%] Linking C static library ../lib/librelic_s.a
[ 97%] Built target relic_s
[ 97%] Linking CXX executable test_phase_2
[ 97%] Built target test_phase_2
[ 98%] Linking CXX executable test_phase_3
/usr/bin/ld: CMakeFiles/test_phase_3.dir/test/test_phase_3.cpp.o: in function `__gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::allocate(unsigned long, void const*)':
/usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/test_phase_3.dir/build.make:100: test_phase_3] Error 1
make[1]: *** [CMakeFiles/Makefile2:280: CMakeFiles/test_phase_3.dir/all] Error 2
[ 98%] Linking CXX executable test_phase_1
/usr/bin/ld: CMakeFiles/test_phase_1.dir/test/test_phase_1.cpp.o: in function `__gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::allocate(unsigned long, void const*)':
/usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/include/c++/11.1.0/ext/new_allocator.h:110: undefined reference to `std::__throw_bad_array_new_length()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/test_phase_1.dir/build.make:100: test_phase_1] Error 1
make[1]: *** [CMakeFiles/Makefile2:197: CMakeFiles/test_phase_1.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

I've already downgraded to gcc 10

I'm using Arch Linux

Not compiling on Apple M1 system

Getting some compiling errors, is this info helpful:

-- Configured operating system: MACOSX
-- Configured GMP: /opt/homebrew/lib/libgmp.a
-- Compiler flags:  -Wall   -O3 -funroll-loops -fomit-frame-pointer -pthread
-- Linker flags: -L/Applications/Chia-arm/maxplotter/chia-plotter/build/_deps/relic-src/src/low/gmp/  -static
-- Configured /Applications/Chia-arm/maxplotter/chia-plotter/build/_deps/relic-src/include/relic_conf.h.in
SODIUM_FOUND in src/CMakeLists.txt
-- Configuring done
-- Generating done
-- Build files have been written to: /Applications/Chia-arm/maxplotter/chia-plotter/build
[  0%] Building CXX object CMakeFiles/test_disk_sort.dir/test/test_disk_sort.cpp.o
[  0%] Built target arith_objs
[  2%] Built target blstmp
[  4%] Built target blake3
clang: error: unsupported option '-fopenmp'
[  6%] Built target fse
make[2]: *** [CMakeFiles/test_disk_sort.dir/test/test_disk_sort.cpp.o] Error 1
make[1]: *** [CMakeFiles/test_disk_sort.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Scanning dependencies of target chia_plotter
[  6%] Building C object CMakeFiles/chia_plotter.dir/lib/chacha8.c.o
[  7%] Linking C static library libchia_plotter.a
[ 92%] Built target relic_s
[ 92%] Built target chia_plotter
make: *** [all] Error 2

runtime error fopen failed

Hi,

I got this:

Working Directory: /mnt/temp0
Working Directory 2: /mnt/ramdisk
Plot Name: plot-k32-2021-06-08-08-58-6f7ef6895055748bd36785dc95c0f0ebe2f6c6e7b12d4fccdbdd6b58dffc8d08
terminate called after throwing an instance of 'std::runtime_error'
what(): fopen() failed
Aborted (core dumped)

Can you point me to the right direction?

Thanks!

Build failed on Windows10

When executing
cmake -D CMAKE_CXX_FLAGS="-g -O3 -fmax-errors=1" -DBUILD_BLS_PYTHON_BINDINGS=false ..
on Windows 10, I only get results:

PS D:\ProjectFiles\GitClone\chia-plotter\build> cmake -D CMAKE_CXX_FLAGS="-g -O3 -fmax-errors=1" -DBUILD_BLS_PYTHON_BINDINGS=false ..
-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363.
CMake Warning (dev) at lib/bls-signatures/CMakeLists.txt:11 (set):
  implicitly converting 'INTEGER' to 'STRING' type.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at lib/bls-signatures/CMakeLists.txt:12 (set):
  implicitly converting 'INTEGER' to 'STRING' type.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at lib/bls-signatures/CMakeLists.txt:13 (set):
  implicitly converting 'INTEGER' to 'STRING' type.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Build python bindings: false
-- Build tests: 1
-- Build benchmarks: 1
-- Found libsodium
-- Sodium include dir = C:/ProgramData/Anaconda3/Library/include
GMP_INCLUDES=C:/ProgramData/Anaconda3/Library/mingw-w64/include
-- Found libgmp
CMake Warning (dev) at lib/bls-signatures/CMakeLists.txt:54 (set):
  implicitly converting 'INTEGER' to 'STRING' type.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at lib/bls-signatures/CMakeLists.txt:65 (set):


......


-- Available random number generator seeders (default = UDEV):

   SEED=          Use a zero seed. (horribly insecure!)
   SEED=LIBC      Use rand()/random() functions. (insecure!)
   SEED=RDRND     Use Intel RdRand instruction directly.
   SEED=UDEV      Use non-blocking /dev/urandom. (recommended)
   SEED=WCGR      Use Windows' CryptGenRandom. (recommended)

-- Configured operating system: WINDOWS
-- Supported MSVC runtime libraries (default = MD):

   RUNTIME=MD     DLL runtime library (/MD,/MDd).
   RUNTIME=MT     Static runtime library (/MT,/MTd).

-- Configured GMP: C:/ProgramData/Anaconda3/Library/lib/gmp.lib
-- Compiler flags:  -Wall   -O3 -funroll-loops -fomit-frame-pointer -pthread
-- Linker flags: -LD:/ProjectFiles/GitClone/chia-plotter/build/_deps/relic-src/src/low/gmp/  -static
-- Configured D:/ProjectFiles/GitClone/chia-plotter/build/_deps/relic-src/include/relic_conf.h.in
SODIUM_FOUND in src/CMakeLists.txt
-- Configuring done
-- Generating done
-- Build files have been written to: D:/ProjectFiles/GitClone/chia-plotter/build

Then when I execute the make -j8 @$, it simply says there is nothing matching the compiling rule.

Would you mind to provide an available compiling script on Windows? Thanks a lot.

32-bit overflow

Currently running 4x instances at 4T each and started noticing the below, not sure if it is an issue or not though!

[P1] Table 2 took 523.978 sec, found 4294969812 matches
[P1] Lost 2299 matches due to 32-bit overflow.

terminate called after throwing an instance of 'std::runtime_error'

I have an E3-1230 V2 4 core, 4 thread CPU, 8G RAM and 512GB SSD.
My command is ./chia_plot xxxxx xxxxx /mnt/512g/caches/ /mnt/512g/files/ 4 128

The following error occurred, what is wrong?

[P1] Table 1 took 366.715 sec
terminate called after throwing an instance of 'std::runtime_error'
what(): thread failed with: key_shift < 0

Unclear how to set the key

I looked at chia_plot.cpp for the parameters as ./chia_plot -h or --help did not show any usage.

As far as I know each plot must be bound to a key and the contents of the plots are based on that key.

I don't see a way to set the farmer public key or the pool one tho.

Can't complie plotter on Windows

mkdir -p build

cd build

cmake -D CMAKE_CXX_FLAGS="-g -O3 -fmax-errors=1" -DBUILD_BLS_PYTHON_BINDINGS=false ..

Everything works fine with the above code, but my comand line can't handle

make -j8 $@

i am getting

make: *** No rule to make target '$@'.  Stop.

if it try to make an app using a make file, I am getting following error:

$ make -f ./cmake_install.cmake
cmake_install.cmake:4: *** missing separator.  Stop.

can't compile anymore after the latest patches

hi, after you merged todays pull requests i can't compile your app anymore:

/usr/bin/ld: CMakeFiles/chia_plot.dir/src/chia_plot.cpp.o: in function std::experimental::filesystem::v1::__cxx11::path::path<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::experimental::filesystem::v1::__cxx11::path>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': /usr/include/c++/7/experimental/bits/fs_path.h:199: undefined reference to std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()'
/usr/bin/ld: CMakeFiles/chia_plot.dir/src/chia_plot.cpp.o: in function std::experimental::filesystem::v1::exists(std::experimental::filesystem::v1::__cxx11::path const&)': /usr/include/c++/7/experimental/bits/fs_ops.h:127: undefined reference to std::experimental::filesystem::v1::status(std::experimental::filesystem::v1::__cxx11::path const&)'
/usr/bin/ld: /usr/include/c++/7/experimental/bits/fs_ops.h:127: undefined reference to `std::experimental::filesystem::v1::status(std::experimental::filesystem::v1::__cxx11::path const&)'
collect2: Fehler: ld gab 1 als Ende-Status zurück
make[2]: *** [CMakeFiles/chia_plot.dir/build.make:89: chia_plot] Error 1
make[1]: *** [CMakeFiles/Makefile2:380: CMakeFiles/chia_plot.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

before you merged the pull requests today it still compiled

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.