Skip to content
drnick23 edited this page Mar 10, 2024 · 1 revision

Using DrPlotter

Minimum Requirements

DrPlotter Minimum Requirements:

  • 24GB nvidia 3090 / A5000 / 4090
  • 128GB DDR4 RAM
  • motherboard with a PCIE 4.0 x 16 slot
  • 64 bit processor (onboard GPU a bonus)
  • Ubuntu / Debian based system

DrSolver Minimum Requirements:

  • 24GB nvidia 3090.
  • Ubuntu / Debian based system

DrChia Harvester Minimum Requirements:

  • ~4GB RAM for every 1PiB of raw disk space.
  • Ubuntu / Debian based system

Installation

Make sure you meet the minimum requirements above. Then, download the latest .deb package from the releases page.

In the command line, run dpkg on your downloaded file, for example:

sudo dpkg -i drplotter_0.9.0_amd64.deb 

This will install drplotter, drsolver, and drchia for the harvester in the /usr/bin/ directory.

You'll also need to install the protobuf library for drsolver:

sudo apt-get install libprotobuf23

If at any point you want to remove drplotter, to uninstall run:

sudo dpkg -r drplotter

Plotting

Note

DrPlotter only supports the recommended NFT plots with pooling. This is to ensure you can verify your system is running as expected against proofs submitted to pools. You can still choose to solo pool, but it must be a plot NFT and not the OG format.

To make plots, run:

drplotter plot -f <your_farmer_key> -c <your_pool_contract_address> -d /your/hdd/directory/ --compression <eco3x or pro4x>

This will fill the directory with plots. While plotting, you'll see progress and when plots complete, you'll see output like this:

Location: 
  Path: /media/nick/E14TB_14/drplots/
  Usage: 1.76 TB used of 12.73 TB total (13%)
  Est. Completion: 467 plots by 2024-01-26 09:25 (2 days, 8 hours)

Plotting File: drplot-pro4x-2024-01-24-00-35-372b8c5b9948587dcf4e6b66565cd382.drplot

  Progress          Time    ETA
  -----------------------------
  100% ##########  06:51      -

  Size       : 24.01 GiB                   1
  Proofs     : 4.180.621.852
  Bits/proof : 49.33 (24.33% of original size)

============ 2024-01-24 00:43:42 ============

Bits/proof is the most important metric for compression. A standard k32 chia plot will require around 202.8 bits for each proof it stores. By comparing bits per proof, we can accurately see the compression based on the number of proofs a plot has, and not just it's physical size.

To see more plotting options, run:

drplotter -h

Setting up your DRPLOTTER_CLIENT_TOKEN

DrPlotter requires a unique client token for authentication. This token links your drsolvers and harvesters. Use the same token across all your machines running drchia harvesters and drsolvers.

1. Generate your token

Run the following command to generate a new client token:

drsolver --generate-token

This command creates a new authentication token. You'll see output similar to this (note that your token will be different):

Generated client token: kWq9NXkHQ75zGhebkJzriknBs0IOnDux5kIqOd0aJioM6HSR

2. Set your DRPLOTTER_CLIENT_TOKEN environment variable

  • Temporary Setting: For a temporary setup in a bash shell, use:

    export DRPLOTTER_CLIENT_TOKEN='Your_Unique_Token'
    

    Replace 'Your_Unique_Token' with the token generated in the previous step.

  • Persistent Setup:

    Edit your .bashrc file for a more persistent solution:

    nano ~/.bashrc
    

    Add the following line to the end of the file (with your actual token):

    export DRPLOTTER_CLIENT_TOKEN='Your_Unique_Token'
    

    Save and exit, then apply changes with:

    source ~/.bashrc
    

3. Verify your token is set

To verify that your token is set correctly, you can run:

echo $DRPLOTTER_CLIENT_TOKEN

and check that the output matches your token.

Caution

Keep your token secure and do not share it in public forums

Run your DrSolver

Once your DRPLOTTER_CLIENT_TOKEN is set in your environment (see previous section), run:

drsolver

DrSolver will run and connect to Solver Server. Once connected, it will display your connected harvesters and solvers that are linked using the same client token. Below is an example output:

                            DrPlotter Solver v0.9.0

DrPlotter Farm Status
--------------------------------------------------------------------------------
  Status: CONNECTED                                             Uptime: 02:23:30
  Client Token: kWq9NXkHQ75zGheb...

  Total Harvesters: 2                                           Total Solvers: 1

  Num DrPlots        Raw Size           Effective Size     Extra Rewards
  3911               95.80 TiB          376.20 TiB         +393%


Solver GPU: NVIDIA GeForce RTX 3090
--------------------------------------------------------------------------------
  Fan    Temp   Perf   Pwr:Usage/Cap                                Memory-Usage
  30%    61C    P2     237W / 240W                           23346MiB / 24576MiB

  Status                                            Load  1 min / 5 min / 15 min
  SOLVING                                                    14%  /  34%  /  32%


Commands: [Q]uit

While DrSolver is running, monitor the 5-minute and 15-minute "load" indicators to gauge the current capacity usage of your GPU as a percentage of its total capacity.

Setup and Run your DrChia Harvester

On your harvester system, set the DRPLOTTER_CLIENT_TOKEN environment variable to the one you generated with your DrSolver.

System with Existing Chia Harvester

Important

Chia Network recently released new harvesters that break changes in config.yaml files. If you have trouble with this section on an existing chia harvester, remove your ~/.chia/ directory and setup again using drchia init instead as explained in the next section.

If you already have a chia setup for your system, you can simply run:

drchia start harvester -r

Make sure to include the -r to stop any previous harvesters and replace them with the drchia harvester.

Add any new plot directories you've plotted, as you would with chia's software, e.g.:

drchia plots add -d /your/plots/directory

New System as Remote Harvester

If you don't have any harvester setup on your machine, you can follow the chia official guide to setting up a remote harvester but use the drchia command instead of the chia command:

  • First, run:

    drchia init
    
  • Then, you need to copy in your ca certificates from your farmer machine, these are usually found at ~/.chia/mainnet/config/ssl/ca. Initialize these with your harvester:

    drchia init -c /path/to/your/farmers/ca/certificates
    
  • Edit the chia config file on your harvester.

    ~/.chia/mainnet/config/config.yaml
    

    Look for farmer_peer: under the harvester: section, and edit the ip to point to your farmer ip. e.g.

    harvester:
      farmer_peer:
        host: <Farmer IP Address>  <--- set to your farmer ip address, e.g. 192.168.1.23
        port: 8447
    

    Don't forget to save your changes.

Before you run your harvester, let's change the config so that you can see log outputs to check it's working. Run:

drchia configure --log-level INFO

And now run:

drchia start harvester -r

If all is well, you can now check your logs in ~/.chia/mainnet/log/debug.log

If you see logs similar to this:

2024-01-24T01:05:55.731 harvester drplotter               : INFO     Harvesting 1368 drplots with on disk size 36.82 TiB, after decompression 130.58 eTiB, extra rewards 3.55x

Then congrats, your drchia harvester has found your plots and should be harvesting your drplots.

Note

If you have not yet connected a drsolver with your same DRPLOTTER_CLIENT_TOKEN, you will see a warning or error message in your harvester logs. Once your drsolver starts running, the harvester will then connect to the server and start sending plots to your solvers.

Verify your DrPlots are Submitting Proofs

To check your DrPlots are submitting proofs, it's recommended to join a pool and adjust the difficulty setting of your pool plots to the lowest possible value, such as 1. This approach is beneficial for several reasons:

  • No Performance Impact: Setting the difficulty to a low level for DrPlots does not affect their performance. Thus, you can monitor their operation without any compromise on efficiency.

  • Effective Monitoring: By using a low difficulty setting, it's easier to track and ensure that you are accruing the expected number of pool points. This setting enhances the visibility of the functioning of your drplots in the pool.

  • Troubleshooting: In case you notice discrepancies in the expected pool points, the low difficulty setting can help in detecting any problems early.

As a result, you can effectively monitor and ensure that your drplots are being farmed correctly and submitting proofs to the pool as anticipated.