Menu
The Chia Plot
  • Blog
  • How-To
  • About
  • Contact
  • Security
  • Discord
The Chia Plot
mad max

How to build MMX from source

Posted on December 27, 2021December 28, 2021 by Chris Dupres

Yesterday I wrote about how Mad Max, one of the most respected developers in the Chia ecosystem, has begun development on a new cryptocurrency loosely based on Chia. That currency is called MMX (for now) and is in the very early alpha stages of testnet. So here are some instructions on how to build MMX. If you farm this coin, it will almost certainly be worthless. I want that to be clear, as this is not an early mainnet you are getting in on the ground floor.

First, MMX only runs on Linux. You can compile it and run it in Windows Subsystem for Linux if you are like me and you run Windows. This guide is made using Ubuntu 20.04 LTS running on Windows WSL2. It should be identical for a bare-metal installation of Ubuntu.

  1. Install Dependencies. Since we are building from source we will need the compile tools necessary to build this.
sudo apt update
sudo apt install git cmake build-essential libsecp256k1-dev libsodium-dev zlib1g-dev ocl-icd-opencl-dev clinfo screen

2. Install the VNX middleware. This is proprietary software that Max has developed to handle a lot of the IO, both disk IO and RPC communication to the node. When I spoke to him, he attributed his work on VNX to being able to build MMX so quickly. This is the part is going to give anyone a problem if they have one, so if you don’t want it installed this is the part to bail on. When installing under WSL2 use the Ubuntu version, not the Windows version. (Update: Max has Open Sourced VNX. What a great guy.)

wget https://github.com/automyinc/vnx-base/raw/master/x86_64/vnx-base-1.9.8-x86_64-ubuntu-20.04.deb
sudo dpkg -i vnx-base-1.9.8-x86_64-ubuntu-20.04.deb

3. Git clone and compile the project. This will build the Full Node, Farmer, Wallet, Harvester and Timelord components. It does not install a plotter, but we will deal with that in the next step. Probably no secret which plotter we will be using here. This process will probably hang partway through after Build Benchmarks: False. This will just take a few minutes to get through, it hasn’t actually stopped.

git clone https://github.com/madMAx43v3r/mmx-node.git
cd mmx-node
git submodule update --init --recursive
./make_devel.sh

4. Once the source has been compiled you need to finish the installation. Pretty basic step.

cd mmx-node
source ./activate.sh

5. Now you will create a wallet. This is similar to Bitcoin-Core (especially back when I was doing it) and not like Chia at all. You are going to end up with a wallet.dat file that contains your keys, as well as a seed phrase you can copy down and preserve.

mmx wallet create

6. At this point we are going to start our Full Node and begin syncing the blockchain. If you are using a Desktop GUI, you can skip step 6 and go to 7. If you are using a console-only server then you will need to do the following to create a new screen so that you can start the Full Node, let it run but still run additional commands. For Desktop Environment / GUI users (either Ubuntu or Windows WSL) you can simply open a new window.

screen -S node
./run_node.sh
<Ctrl+A> + D (to detach)
screen -r node (to attach again)

7. Start the Full Node. This will begin connecting to the MMX network and downloading blocks. This is a VERY intensive process and MMX syncs VERY fast if you are coming from Chia. Be prepared to be impressed. If you have a slow CPU you should run it without a timelord to avoid overloading yourself and getting out of sync. You do this by appending –timelord 0 to your launch arguments.

./run_node.sh

or

./run_node.sh --timelord 0

8. At this point your Node is running and you will need to open a new window / session. Open that, browse back to your /mmx-node/ folder where you git-cloned the repo and re-activate the environment.

cd mmx-node
source ./activate.sh

9. Now we will extract our Pool Public and Farmer Public keys so we can create some plots. At this point forward this is largely like plotting and farming Chia, minus the GUI. And minus some of the annoying performance issues, so far at least.

mmx wallet keys

10. Once you have your wallet keys, you will install the latest version of Mad Max’s chia-plotter (one might call it.. the chia_plot). You can either use the instructions there to build from source, grab one of the binaries or get the Windows version in our guide. Once you have the plotter installed, you are going to do a non-NFT plot with it with the -x 11337 argument used. It will look a little something like this:

chia_plot -k 30 -x 11337 -n -1 -r 12 -t /mnt/c/plotting/ -d /mnt/d/mmx_plots/ -p ad9a743d7dd50ac673e041c05d77ce983ee0bd0684354a0eaf349260db68e4aa0c704d86b40154236bf9582be848dc10 -f a6db170e82a28ea5ecba83b8841b12eed53249f6a7be43b3965509983b8add3a858f411864a408e88b593c7663c8329f

Right now testnet supports k values over 26, but mainnet will start support at k30 as currently planned (this could change, remember this stuff is VERY alpha). To give myself the best chance at keeping plots I am plotting 30, but if you want to get up and going right away then k26 plots go VERY quickly.

11. Once you have your plots, you will need to add the plot directory to your config and restart your node one last time. You do this by modifying the plot_dirs array in the config/local/Harvester.json file. For my plots folder, on d:\mmx_plots\ (in WSL2) I would do the following

nano /mmx-node/config/local/Harvester.json

I would change the empty plots_dirs value to the following, then save and close the file.

{
	"plot_dirs": ["/mnt/d/mmx_plots/"]
}

Restart the node and you should plotting and farming away. Again, this is a testnet Alpha project and we are building this to help Mad Max, not ourselves. Try to keep that in mind when making demands of him. With that in mind, here is his discord. On that note, in order to help out the network you can NAT forward port 12331 back to your full node machine. Because this software has not been audited yet, I won’t recommend any one do that. But I have.

Related

8 thoughts on “How to build MMX from source”

  1. Ronski says:
    December 27, 2021 at 6:39 am

    I think I’ll pass on this for now.

    PS. When using dark mode you have white text in a white box.

    Reply
    1. Chris Dupres says:
      December 27, 2021 at 6:40 am

      Really? Thank you! I will check that out

      Reply
  2. asdf says:
    December 27, 2021 at 1:10 pm

    Stuck on step 10. Chia_plot command not found. After installing the chia plotter located here. “https://github.com/madMAx43v3r/chia-plotter”

    Reply
    1. Chris Dupres says:
      December 27, 2021 at 1:18 pm

      Try ./ In front

      Reply
  3. f00b4r says:
    December 28, 2021 at 7:57 am

    If using wsl2 the port can be to be forwarded from windows to WSL, something like this in Powershell

    netsh interface portproxy add v4tov4 listenport=12331 listenaddress=0.0.0.0 connectport=12331 connectaddress=172.21.64.x

    where the 172….. is the WSL IP address

    Reply
  4. Chris says:
    December 28, 2021 at 1:17 pm

    Please change the color scheme of your page. White characters on slightly darker white and black characters on slightly lighter black. Hmm. Have to highlight to read them.

    Reply
    1. Chris Dupres says:
      December 28, 2021 at 1:18 pm

      Is this in darkmode?

      Reply
  5. Michael says:
    January 16, 2022 at 3:21 pm

    Ran through the instructions and works very well getting a node setup and attached to TestNet. Thank you for posting.

    Reply

Leave a Reply Cancel reply

Advertisement

Recent Posts

  • Crypto is burning down – Chia seems fine
  • Chia CAT upgrade fiasco part 2 – Was I wrong?
  • WTF just happened?? CAT1 to CAT2 “upgrade”
  • The era of the Chia NFT is upon us
  • Chia Blockchain 1.4.0 released – NFTs and DIDs oh my
  • Discussion
  • Facts About Farmers
  • How-To
  • Information
  • News
  • pools
  • Security
  • Trademark
  • Trading
  • Uncategorized

Dark Mode Switch

©2021 The Chia Plot - Donate XCH / MRMT / SBX @ xch1p4440d6zwu9ryta2vx073lq2ge3s29d37kskz6t34jp085e8srjqnk0gcr
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
Cookie SettingsAccept All
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-advertisement1 yearThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement".
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
JSESSIONIDsessionUsed by sites written in JSP. General purpose platform session cookies that are used to maintain users' state across page requests.
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
CookieDurationDescription
na_id1 year 1 monthThis cookie is set by Addthis.com to enable sharing of links on social media platforms like Facebook and Twitter
na_rn1 monthThis cookie is used to recognize the visitor upon re-entry. This cookie allows to collect information on user behaviour and allows sharing function provided by Addthis.com
na_sc_e1 monthThis cookie is used to recognize the visitor upon re-entry. This cookie allows to collect information on user behaviour and allows sharing function provided by Addthis.com
na_sr1 monthThis cookie is set by Addthis.com. This cookie is used for sharing of links on social media platforms.
na_srp1 minuteThis cookie is used to recognize the visitor upon re-entry. This cookie allows to collect information on user behaviour and allows sharing function provided by Addthis.com
na_tc1 year 1 monthThis cookie is set by the provider Addthis. This cookie is used for social media sharing tracking service.
ouid1 year 1 monthThe cookie is set by Addthis which enables the content of the website to be shared across different networking and social sharing websites.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
CookieDurationDescription
d3 monthsThis cookie tracks anonymous information on how visitors use the website.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
CookieDurationDescription
__gads1 year 24 daysThis cookie is set by Google and stored under the name dounleclick.com. This cookie is used to track how many times users see a particular advert which helps in measuring the success of the campaign and calculate the revenue generated by the campaign. These cookies can only be read from the domain that it is set on so it will not track any data while browsing through another sites.
_ga2 yearsThis cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors.
_gat_gtag_UA_199099757_11 minuteThis cookie is set by Google and is used to distinguish users.
_gid1 dayThis cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form.
CONSENT16 years 4 months 5 daysThese cookies are set via embedded youtube-videos. They register anonymous statistical data on for example how many times the video is displayed and what settings are used for playback.No sensitive data is collected unless you log in to your google account, in that case your choices are linked with your account, for example if you click “like” on a video.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
CookieDurationDescription
advanced_ads_browser_width1 monthThis cookie is set by Advanced ads plugin.This cookie is used to measure and store the user browser width for adverts.
anj3 monthsNo description available.
CMID1 yearThe cookie is set by CasaleMedia. The cookie is used to collect information about the usage behavior for targeted advertising.
CMPRO3 monthsThis cookie is set by Casalemedia and is used for targeted advertisement purposes.
CMPS3 monthsThis cookie is set by Casalemedia and is used for targeted advertisement purposes.
CMRUM31 yearThis cookie is set by Casalemedia and is used for targeted advertisement purposes.
CMST1 dayThe cookie is set by CasaleMedia. The cookie is used to collect information about the usage behavior for targeted advertising.
DSID1 hourThis cookie is setup by doubleclick.net. This cookie is used by Google to make advertising more engaging to users and are stored under doubleclick.net. It contains an encrypted unique ID.
i1 yearThe purpose of the cookie is not known yet.
IDE1 year 24 daysUsed by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile.
KADUSERCOOKIE3 monthsThe cookie is set by pubmatic.com for identifying the visitors' website or device from which they visit PubMatic's partners' website.
KTPCACOOKIE1 dayThis cookie is set by pubmatic.com for the purpose of checking if third-party cookies are enabled on the user's website.
mc1 year 1 monthThis cookie is associated with Quantserve to track anonymously how a user interact with the website.
test_cookie15 minutesThis cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies.
uid1 year 1 monthThis cookie is used to measure the number and behavior of the visitors to the website anonymously. The data includes the number of visits, average duration of the visit on the website, pages visited, etc. for the purpose of better understanding user preferences for targeted advertisments.
uuid3 monthsTo optimize ad relevance by collecting visitor data from multiple websites such as what pages have been loaded.
uuid23 monthsThis cookies is set by AppNexus. The cookies stores information that helps in distinguishing between devices and browsers. This information us used to select advertisements served by the platform and assess the performance of the advertisement and attribute payment for those advertisements.
VISITOR_INFO1_LIVE5 months 27 daysThis cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website.
YSCsessionThis cookies is set by Youtube and is used to track the views of embedded videos.
yt-remote-connected-devicesneverThese cookies are set via embedded youtube-videos.
yt-remote-device-idneverThese cookies are set via embedded youtube-videos.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
CookieDurationDescription
__gpi1 year 24 daysNo description
adImpCountpastNo description
C3UID5 yearsNo description available.
C3UID-9245 yearsNo description
fc5 months 27 daysNo description available.
pfpastNo description
pxs5 months 27 daysNo description available.
SAVE & ACCEPT
Powered by CookieYes Logo