Skip to content
Guy Davis edited this page Feb 12, 2023 · 52 revisions

Note: As of 2023-01-14, MMX GPU plotting binaries are now included in the machinaris-mmx:develop and machinaris-mmx:test images. See compression directive below.

MMX is a Proof of Space and Time (PoST) crypto. MMX is NOT simply a fork of Chia, instead being a fresh codebase on a new blockchain. They DO NOT share the same plot files.

MMX is still in their beta (aka testnet) stages, however I welcome feedback from those keen to test. MMX looks like a very promising blockchain and Machinaris will be there to provide a useful WebUI, with monitoring and control of farming and plotting, as MMX progresses.

Installation

To start trying out MMX:

  1. On Linux, Windows, MacOS, etc: Just create a new docker-compose.yml from Machinaris launch wizard, selecting "MMX" as an enabled blockchain.
  2. In Unraid Admin UI, select Apps tab, search for machinaris mmx, select 'Machinaris MMX' then complete the form and deploy. Please at least 15 minutes for a complete launch of the Machinaris-MMX container!

Ports:

  • Machinaris API Port: 8940 (LAN communication, do NOT port-forward on your router)
  • MMX Network Peer Port: 12339 (testnet9 network communication, DO port-forward on your router)

Configuration

Once the Machinaris-MMX container has been running for a while, visit the Machinaris WebUI and look for the mmx fork to appear on the Wallets, Keys, Connections, Workers, and Summary pages.

To configure plotting, note the Keys page values for MMX, then switch to Settings | Plotting page, choose your fullnode worker and mmx as the fork. The farmer and pool public keys should be automatically replaced in the plotman.yaml configuration shown. Verify they are correct and then Save the settings.

As with Chives, I strongly recommend keeping your MMX plots in a separate folder on your HOST OS. For example, if I have a drive mounted at /mnt/disks/plots7:

  • I place Chia plots directly within /mnt/disks/plots7/
  • I place Chives plots within /mnt/disks/plots7/chives/
  • I place MMX plots within /mnt/disks/plots7/mmx/

This is done with volume-mounts, different for each of Chia, Chives, and MMX. Each container simply read/writes plots from /plots7 mounted in-container.

Then switch to the Plotting page, then select your Worker menu, drop-down to 'mmx' and begin plotting your first MMX plot:

Reset During Testing

As MMX itself, and Machinaris' support for this blockchain, are in testing, expect things to break and you to have to start from scratch. If needed:

  1. Stop the Machinaris-MMX container.
  2. Delete the entire appdata at ~/.machinaris/machinaris-mmx or /mnt/user/appdata/machinaris-mmx.
  3. Start the Machinaris-MMX container.

Alternatively, if you want to just resync the blockchain, you could try stopping, deleting just ~/.machinaris-mmx/mmx/testnet9/block_chain.dat and starting the container again.

If you have already plotted, then you will want to use your original seed after step 3 above.

docker exec -it machinaris-mmx bash
rm -f /root/.mmx/wallet.dat
mmx wallet create YOUR_SEED -f /root/.chia/mmx/wallet.dat

then restart the Machinaris-MMX container.

Submitting Issue Reports

Please post questions and issues in the #development channel of the Machinaris Discord. Thanks for testing this early-stage blockchain!

Frequently Asked Questions

Can I use my CPU?

Yes, the blockchain verification can run on only your CPU. However, it requires a recent CPU with AVX2 extensions so many old systems that happily run Chia (and fork) blockchains won't run MMX. As well, the verification is quite CPU-intensive, chewing a lot of power so really you should be using a GPU with MMX (see below).

Can I use my GPU?

Yes, definitely on Linux and Unraid, probably not on Windows due to Docker deficiencies. However this is being investigated, tested, and documented. Please drop into the Machinaris Discord to share tips and tricks.

Nvidia

You'll need the Nvidia Driver Runtime. On Unraid, just install the Nvidia Driver plugin.

Then please add the following to your docker-compose.yml. Extend the existing environment section

    environment:
        - OPENCL_GPU=nvidia
        - NVIDIA_VISIBLE_DEVICES=0
        - NVIDIA_DRIVER_CAPABILITIES=compute,utility

Then add a new runtime line, (at same level as environment):

    runtime: nvidia

OR for Unraid, using the Docker admin tab, edit the Machinaris-MMX config, create 3 new Variables (shown) and add --runtime=nvidia to the "Extra Parameters" field.

Ideally you can target the device by position or GUID, which you can later override in Unraid Docker Configuration or compose ENVs,

-e NVIDIA_VISIBLE_DEVICES=0 or -e NVIDIA_VISIBLE_DEVICES=GPU-a8b96998-xxxx-xxxx

Further explained here.

AMD

For AMD GPUs, as per this tutorial (AMD section part-way down), please add the following to your docker-compose.yml. Extend the existing environment section

    environment:
        - OPENCL_GPU=amd
        - ROC_ENABLE_PRE_VEGA=1

and add the following devices section at the same level as environment:

    devices:
        - "/dev/kfd:/dev/kfd"
        - "/dev/dri/:/dev/dri/"

Intel iGPU

Extend the existing environment section

    environment:
        - OPENCL_GPU=intel

and add the following devices section at the same level as environment:

    devices:
        - "/dev/dri/:/dev/dri/"

On the host machine, add the user that runs the container to the "video" and "render" groups.

sudo adduser $USER video
sudo adduser $USER render

To see if it worked, after the container starts, connect to it and type "clinfo"

docker exec -it machinaris-mmx bash
clinfo

You should see something like:

root@localhost:/chia-blockchain# clinfo 
Number of platforms                               1
  Platform Name                                   Intel(R) OpenCL HD Graphics
  Platform Vendor                                 Intel(R) Corporation
  Platform Version                                OpenCL 3.0 
  Platform Profile                                FULL_PROFILE

Are MMX Workers Supported?

Yes, a Machinaris Worker can be configured by visiting the Workers page of the Machinaris WebUI. Click the 'New Worker' button to create a docker-compose.yml to run on your worker system. This worker can perform either MMX harvester, MMX plotting, or both!

Where can I learn about MMX?

Check out their Github repository and their Discord server.

Clone this wiki locally