guydavis / machinaris

An easy-to-use WebUI for crypto plotting and farming. Offers Bladebit, Gigahorse, MadMax, Chiadog and Plotman in a Docker container. Supports Chia, MMX, Chives, Flax, and HDDCoin among others.
Apache License 2.0
340 stars 69 forks source link

Support for official Chia pools - plotting & farming #131

Closed guydavis closed 3 years ago

guydavis commented 3 years ago

Support for both plotting of portable plot and farming them on official pools. Ensure ease of setup and use within Machinaris.

ApfelBirneKreis commented 3 years ago

is there a branch to help you testing?

guydavis commented 3 years ago

Pooling support is now available in test version: ghcr.io/guydavis/machinaris:test Early support includes "pool" test branches of both the stock Chia plotter and the Madmax plotter.

Currently, to create portable plots for testing, you need to, first create a pool_contract_address:

docker exec -it machinaris bash
chia plotnft create -u https://my.fave.pool.org -s pool

Replace https://my.fave.pool.org with the address of your preferred pool, following their specific instructions.

Then set that pool_contract_address into the config at Setting | Plotting page of Machinaris. Examples for Chia plotter and Madmax plotter.

NOTE: As per Chia devs, these portable plots may change before final release so this is only for testing!

ApfelBirneKreis commented 3 years ago

The issue is, when plotting for a pool the pool_pk needs to be #. otherwise it will give the -p, -c and -f argument to the plotter. this errors the plotter out. when deleting the pool_pk it is plottung but it starts a new plot every 2s and the plots are not showing up in the plotting tab.

is there a way to fix that soon? unfortunately its unusable that way.

guydavis commented 3 years ago

The issue is, when plotting for a pool the pool_pk needs to be #. otherwise it will give the -p, -c and -f argument to the plotter. this errors the plotter out. when deleting the pool_pk it is plottung but it starts a new plot every 2s and the plots are not showing up in the plotting tab.

Please share the different plotman.yaml settings files you've tried. For example, is this for Chia stock plotter or Madmax or both? If you share the plotting section (masking any key values), then I can better understand the issue. Thanks for the report.

Example: image

jimmyspets commented 3 years ago

I have tried to plot for pool use with the standard plotter. I get the following error message about the code version of chia: Exception: Chia version 1.2 required for creating pool plots but found: 1.1.7.dev80

Would it be possible to bump the chia version to 1.1.7dev454 that I know works outside Machinaris?

guydavis commented 3 years ago

I have tried to plot for pool use with the standard plotter. I get the following error message about the code version of chia: Exception: Chia version 1.2 required for creating pool plots but found: 1.1.7.dev80

Would it be possible to bump the chia version to 1.1.7dev454 that I know works outside Machinaris?

Just rebuilt the Machinaris test version and pulling from main@chia-blockchain. This binary reports version: 1.1.7.dev95

chia plots create --help shows: image

Which branch are you getting 1.1.7dev454 from?

jimmyspets commented 3 years ago

I followed these instructions:

  1. When starting from scratch, install Chia with these instructions: https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL#ubuntudebian
  2. Go to your Chia directory and make sure you didn't activate Chia venv yet. You can deactivate with command: deactivate
  3. git fetch
  4. git checkout main
  5. git pull
  6. sh install.sh
  7. . ./activate
  8. chia init
  9. chia start farmer -r
  10. Ensure your node and wallet are fully synced
  11. Your wallet needs at least 1 MOJO to join a pool. Use https://faucet.chia.net/ if you don't have 0.000000000001 XCH (1 MOJO)
  12. chia plotnft create -u https://xch.spacefarmers.io -s pool This will create the pool wallet, check details and confirm
  13. Check if your pool wallet is activated: chia plotnft show. It can take up till 2 minutes for the pool wallet to show up.
  14. Copy P2 singleton address
  15. chia plots create -t /temp/directory/ -d /final/directory -c (P2 singleton address from step 13)
ApfelBirneKreis commented 3 years ago

this is my plotting config:

# Learn more about Plotman at https://github.com/ericaltendorf/plotman
# https://github.com/ericaltendorf/plotman/wiki/Configuration#versions
version: [2]

logging:
        # DO NOT CHANGE THIS IN-CONTAINER PATH USED BY MACHINARIS!
        plots: /root/.chia/plotman/logs

user_interface:
        use_stty_size: False

commands:
        interactive:
                autostart_plotting: False
                autostart_archiving: False

# Where to plot and log.
directories:

        # One or more directories to use as tmp dirs for plotting.  The
        # scheduler will use all of them and distribute jobs among them.
        # It assumes that IO is independent for each one (i.e., that each
        # one is on a different physical device).
        #
        # If multiple directories share a common prefix, reports will
        # abbreviate and show just the uniquely identifying suffix.
        # REMEMBER ALL PATHS ARE IN-CONTAINER, THEY MAP TO HOST PATHS
        tmp:
                - /plotting

        # Optional: Allows overriding some characteristics of certain tmp
        # directories. This contains a map of tmp directory names to
        # attributes. If a tmp directory and attribute is not listed here,
        # it uses the default attribute setting from the main configuration.
        #
        # Currently support override parameters:
        #     - tmpdir_max_jobs
        #tmp_overrides:
                # In this example, /plotting3 is larger than the other tmp
                # dirs and it can hold more plots than the default.
                #/plotting3:
                #        tmpdir_max_jobs: 5

        # Optional: tmp2 directory.  If specified, will be passed to
        # the chia and madmax plotters as the '-2' param.
        #tmp2: /plotting2

        # One or more directories; the scheduler will use all of them.
        # These again are presumed to be on independent physical devices,
        # so writes (plot jobs) and reads (archivals) can be scheduled
        # to minimize IO contention.
        # REMEMBER ALL PATHS ARE IN-CONTAINER, THEY MAP TO HOST PATHS
        dst:
                - /private-plots
                - /pool-plots

# See: https://github.com/guydavis/machinaris/wiki/Plotman#archiving
#archiving:
        #target: rsyncd
        #env:
                #site_root: /mnt/disks
                #user: root
                #host: aragorn
                #rsync_port: 12000
                #site: disks

# Plotting scheduling parameters
scheduling:
        # Run a job on a particular temp dir only if the number of existing jobs
        # before tmpdir_stagger_phase_major tmpdir_stagger_phase_minor
        # is less than tmpdir_stagger_phase_limit.
        # Phase major corresponds to the plot phase, phase minor corresponds to
        # the table or table pair in sequence, phase limit corresponds to
        # the number of plots allowed before [phase major, phase minor]
        tmpdir_stagger_phase_major: 4
        tmpdir_stagger_phase_minor: 0
        # Optional: default is 1
        tmpdir_stagger_phase_limit: 1

        # Don't run more than this many jobs at a time on a single temp dir.
        # Increase for staggered plotting by chia, leave at 1 for madmax sequential plotting
        tmpdir_max_jobs: 1

        # Don't run more than this many jobs at a time in total.
        # Increase for staggered plotting by chia, leave at 1 for madmax sequential plotting
        global_max_jobs: 1 

        # Don't run any jobs (across all temp dirs) more often than this, in minutes.
        global_stagger_m: 30

        # How often the daemon wakes to consider starting a new plot job, in seconds.
        polling_time_s: 20

# Configure the plotter.  See: https://github.com/guydavis/machinaris/wiki/Plotman#plotting
plotting:
        farmer_pk: 87b595.....
        pool_pk: a952f59.....
        #pool_contract_address: xch1thw.....

        # If you enable 'chia', plot in *parallel* with higher tmpdir_max_jobs and global_max_jobs
        # If you enable 'madmax', plot in *sequence* with very low tmpdir_max_jobs and global_max_jobs
        type: madmax

        # The chia plotter: https://github.com/Chia-Network/chia-blockchain
        chia:
                k: 32                # k-size of plot, leave at 32 most of the time
                e: False             # Disable bitfield back sorting (default is True) 
                n_threads: 2         # Threads per job
                n_buckets: 128       # Number of buckets to split data into
                job_buffer: 3389     # Per job memory

        # The madmax plotter: https://github.com/madMAx43v3r/chia-plotter
        madmax:
                n_threads: 10          # Default is 4, SLOWLY crank up if you have many cores
                n_buckets: 256        # Default is 256
ApfelBirneKreis commented 3 years ago

another issue i found. when i try to kill plots it does not work. not stopping nor deleting files. tryed 5 full reinstalls. same problem

guydavis commented 3 years ago

Closing as v0.5.0 release supports Chia pools.