FAQ - guydavis/machinaris GitHub Wiki

Start a Discussion or join our Discord for support and to help out.

Table of Contents

General

Where can I get support?

Machinaris is a community-supported project with helpful users, willing to lend a hand, particularly on initial setup. Check out our Discord group, Github Issues, Unraid Support thread, or Machinaris sub-reddit.

How can I stop or restart the WebUI?

docker exec -it machinaris bash
kill $(pidof "gunicorn: master [web:app]")
kill $(pidof "gunicorn: master [api:app]")
... then later when you want the WebUI running again ...
/machinaris/scripts/start_machinaris.sh

Can I copy over Chia blockchain and wallet databases from other installs?

Yes, you can try that to avoid initial blockchain sync time. Users report about a 50% success rate though, so be sure to save your fresh copies from Machinaris. First stop the Machinaris container, then from the ~/.machinaris/ path (or similar) on your Host OS disk:

mv mainnet/db mainnet/db.fresh
cp -r /PATH/TO/OLD/db mainnet/db
mv mainnet/wallet/db mainnet/wallet/db.fresh
cp -r /PATH/TO/OLD/wallet/db mainnet/wallet/db

Start up Machinaris container and look very closely at:

  • ~/.machinaris/mainnet/log/init.log
  • ~/.machinaris/mainnet/log/debug.log

Also verify farming is starting with chia farm summary and wallet is running with chia wallet show.

Machinaris Drive Full

By default, Machinaris stores its appdata (including the full Chia blockchain @ 30 GB) in the $HOME directory of the OS user. So, when creating a docker-compose.yml at https://www.machinaris.app, you will see a Volume line like:

  - ~/.machinaris:/root/.chia

This tells Machinaris to store its appdata in a folder like C:\Users\USERNAME\.machinaris. To move this:

  1. Stop all the Machinaris containers.
  2. Move all the .machinaris* folders from C:\Users\USERNAME over to D:\machinaris_appdata(for example)
  3. In your docker-compose.yml change all occurrences of ~/.machinaris* to "D:/machinaris_appdata/machinaris*" for example.
  4. Then start up the containers one by one.
    They should then use the appdata folder on D: drive instead of C:, with nothing in state lost.

Plotting

Can I use two (or more) temporary plotting directories?

Yes, just mount both temp plotting volumes in-container. For example, let's say you have:

  • /mnt/disks/ssd1 mapped to /plotting1 in container.
  • /mnt/disks/ssd2 mapped to /plotting2 in container.

On Docker run, this looks like -v '/mnt/disks/ssd1':'/plotting1':'rw' and -v '/mnt/disks/ssd2':'/plotting2':'rw'

Then set the plotman.yaml directories:tmp section to have two entries similar to this:

Plotman

Can I send my completed plots to another system when they're done?

Yes, Plotman supports archiving via rsync in the plotman.yaml file transfer completed plots to a destination server, without tying up resources for your plotting. For detailed configuration in Machinaris, see this wiki page.

Can I restart/update the container without killing my plotting jobs?

Unfortunately, no. A Docker container is a lot like a small virtual machine, so restarting the container is like rebooting the VM. However, if you are plotting, first stop Plotman on the Plotting page. This will prevent new plotting jobs from launching, but will allow existing jobs to complete. Then later, when your plotting jobs are done, you can restart the Machinaris container and/or update the Docker image without impacting plotting.

How to start the next Madmax plotting job while last is still copying to destination?

Try the following in your plotman config, allows 2 concurrent jobs, but won't start a second until the very end stage (copying) of the first job:

        tmpdir_stagger_phase_major: 5
        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: 2

        # 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: 2

Replotting?

Yes, Machinaris can slowly remove old plots while you plot new ones. Please see more on the settings to enable this functionality.

Farming

How can I restart the Chia farmer services?

docker exec -it machinaris bash
chia start farmer -r

Chiadog reports Harvester is Offline

Unfortunately, sometimes the Chiadog log monitor incorrectly flags a Harvester (or local Harvester service) as being offline, even though the ~/.machinaris/mainnet/log/debug.log clearly shows that harvesting/farming is occurring. If this recurs even after a restart of the Machinaris container, then try to remove the debug.log after stopping the container, then restart Machinaris.

Can I use two (or more) final destination directories to hold my plots?

Yes, Machinaris supports this for both farming and as a plotting destination. First, you need to mount them as separate volumes in-container. For example, let's say you have:

  • /mnt/disks/disk1/plots mapped to /plots1 in container.
  • /mnt/disks/disk2/plots mapped to /plots2 in container.

Using the Machinaris launch wizard, your docker-compose.yml looks like:

    volumes:
        /mnt/disks/disk1/plots:/plots1
        /mnt/disks/disk2/plots:/plots2
    environment:
        plots_dir=/plots1:/plots2

With Unraid, go the Unraid Admin UI, click Docker tab, then select Machinaris from the list of containers and choose Edit. You would then edit the Variable named plots_dir to hold the colon-separated list of your container paths. (Toggle 'Advanced View' first!) NOTE: This is not a Path configuration in Unraid, but rather a Variable:

Unraid

Why are there no challenges shown on the main Machinaris page?

If you are farming successfully, every 10 secs or so, you should see a new challenge such as this:

Challenges

If you don't see any challenges, it could be fine. Perhaps you don't have plots, perhaps you still syncing, perhaps you started up...

However, if the problem persists, then you are NOT farming and you are not eligible to win XCH rewards. If that's the case, take a close look at the Alerts page for notifications of errors from Chiadog. Also, it's worth looking into the Chia log yourself. Depending on your volume mounts, you'll find mainnet/logs/debug.log.

How come Machinaris shows zero plots farming right after restart?

Some users, particularly those with lots of plots, have reported that the main Machinaris status (and chia farm summary behind the scenes) report zero plots on initial start up, even when plots exist in the /plots directory. This generally resolves itself as Chia catches up on syncing/startup so just wait a while and check later. One user reported 30 minutes for them once.

Farming Summary and File Listing Report Different Plot Counts

This is a serious issue where Machinaris listed all configured Plot folders and found X plot files. However, the Chia farming service (chia farm summary) is reporting Y plots on same system, where Y may be zero. This mismatch may indicate a problem with the harvesting service running on the remote Harvester and warrants investigation into the ~/.machinaris/mainnet/log/debug.log file to ensure harvesting started successfully.

Target Peer Count

Default network peers for Chia is 80, but this is configurable.

Security

Why doesn't Machinaris offer an authentication mechanism to allow logins?

Machinaris is a simple web app for access to your blockchain and plotting. It is intended for use on your local area network only, but you may choose to proxy access to it via other web servers. If you do this, then your web server should have many means of securing/authenticating access to proxy targets such as Machinaris. The onus is on you to configure this correctly for you particular setting.

Who wrote this? Can they be trusted?

That's a good question. Nice to meet you! My name is Guy Davis. I'm a middle-aged Canadian, with a regular day job, a lovely wife, and two great kids. Back in April 2021, I tried the "official" docker image on my Unraid server. Unlike many other good apps for Unraid, it was commandline-only, required manual plotting, and manual log monitoring. Too much babysitting! I wanted a WebUI with automatic staggered plotting and monitoring/alerting.

This led me to create Machinaris project, whose code-base is completely open-source and which is built via fully-reviewable Github Actions. I take private key security seriously and am actively looking to improve security with each release.

If you have any concerns, please feel to raise them in our Discord group, Github Issues, Unraid Support thread, or Machinaris sub-reddit.

Do you review every blockchain?

Do I skim each new blockchain repository? Yes. Do I personally vet all commits for a blockchain, both now and in the future? No, not enough time in the day.

As such, running any Chia fork is an exercise in trust with the blockchain developers. Farming to a cold wallet address helps to minimize impacts, but not completely mitigate.

For example, I've encountered a number of users in the Chia ecosystem that complain about the Chia GUI or CLI, but when offered an alternative (tool or fork), they prefer to live with their complaints, trusting only the Chia first-party application. Totally understandable decision for some.

Everyone has a different risk tolerance, and only they can decide what they are comfortable investing their time and hardware towards.

Donations

How can I donate?

While your thanks are appreciated, I just enjoy programming in my spare time. No need to donate. Instead, please share the word on Machinaris with others who would also find it useful. Feel free to drop into the Discord server to help other new users with the knowledge you've gained about Chia.

If you find the Machinaris applications useful, please star them on Github and Dockerhub, if you have logins there.