On August 28, 2021, we released HDDcoin version 1.2.5 (build number 1.2.5-dev2 / 1.2.52).
We are excited about this new release and encourage everyone to install or upgrade to this version.
Please note that the CLI will show this version as 1.2.5-dev2. The GUI will display the version as 1.2.5 on Linux, 1.2.5.dev2 on MacOS, and 1.2.52 on Windows.
We will work to make the build number show the same on all operating systems in our next major release.
Head over to HDDcoin download page to download a copy for your operating system. The download links point to the corresponding artifacts on our GitHub release page for this update. Install instructions are on GitHub. Be sure to follow the instructions as listed. If pulling from the GitHub repository, the branch to pull from is “main”. In the future, we will set up a “latest” branch like Chia, so that the update processes will be exactly the same.
With this new version, we made some important changes, including the following:
- Updated HDDcoin CLI and GUI from v1.2.1 to upstream Chia v1.2.5-dev, which incorporates many fixes, new class methods to improve ease of use and many changes to improve performance — including support for multiple wallets, improvements to sync speed by allowing concurrency in downloading and validating blocks, display of version number in GUI when installed with install-gui.sh script, adding many new translations, and ensuring that files are written with the proper permissions when creating SSL certificate & private key files. (Complete list of upstream improvements too many to mention here. Please visit Chia Change Log for details of changes in Chia v1.2.2, v1.2.3, v1.2.4 and v1.2.5 releases).
- Changed the HDDcoin fractional coin from “mojos” to “bytes”.
- Fixed all ports used throughout the application.
- Cleaned display returned from the CLI for command, “hddcoin show -c” [thanks to wolfrage76].
- Added Wallet fix to prevent pop-up error in GUI when a block is found [thanks to pinksheetscrypto].
- Applied fix causing errors in the GUI install script.
Some very interesting changes you’ll immediately notice after installing the update and running it for the first time includes:
1. SSL Permission Alert
Chia v1.2.4 introduced a slightly more secure file permission right for all the SSL files. We decided to implement this as well, since being more secure is always better than being less secure, if there aren’t any adverse implications. You’d notice that the first time you upgrade and run the “hddcoin init” command, you’ll get the below prompt advising you to run a fix to update the permissions of your SSL.
“One or more SSL files were found with permission issues. Run hddcoin init --fix-ssl-permissions to fix issues.”
Here is an example of the prompt before running the command:
You can of course choose to ignore this, but why would you?
After running the hddcoin init –fix-ssl-permissions to fix issues command, you get this prompt, noting it has “Finished updating SSL file permissions”.
We welcome this security change, and are happy we’ve been given this nice script to do all the work for us.
2. Plots Load Methodology
By default, the way plots are detected, read and loaded has been improved in the new version. This was previously controlled by the parameter, “plot_loading_frequency_seconds” in config.yaml, as can be seen in the screenshot below:
Three new parameters now control this process for even finer tuning. They are listed in the harvester section of the config file, in the sub-section: “plots_refresh_parameter”, and are shown in the screenshot below:
Here is what each setting does:
- interval_seconds: The interval in seconds to refresh the plot file manager. Default value is 120.
- batch_sleep_milliseconds: Milliseconds the harvester sleeps between batch processing. Default value is 10.
- batch_size: How many plot files the harvester processes before it waits for batch_sleep_milliseconds. Default value is 30.
With the default settings, plots are now added to your farm in batches of 30 plots (2.97 TiB) every 120 seconds, with 10 milliseconds of sleep time between each batch. This improves performance and seems to work really well with most farmers. However, some farmers with a very large number of plots have reported that the default parameters cause the application to load plots rather slowly, while at the same time using higher CPU resources than usual. Wezl, for instance, noted that his farm having 1.2 PiB of plots, which used to take about 10 minutes to load, now takes about 49 minutes to do so using the default plots load setting. However, when he updated the interval_seconds parameter from 120 to 1200 seconds (from 2 mins to 20 mins), he was able to cut down the total load time to only 6 minutes and 30 seconds — dropping it by 35%, which is an improvement from his original load time.
The following screenshot shows a log where 30 plots are loaded in batches.
I would recommend increasing your interval_seconds parameter from 120 to sometime much higher, especially if you are no longer actively plotting.
UPDATE-1: typicalrise / Alext, who operate a farm size of 7.58 PiB reported that they were getting heavy processor resource usage with the default batch_size of 30. While testing several configurations, they found that they achieved stability by increasing batch_size to 120 while keeping their interval_seconds at 1200.
UPDATE-2: Chia has, with a recent Pull Request, updated the default value of batch_size from 30 to 300, added a new parameter, retry_invalid_seconds, with default value of 1200. This new parameter determines how long to wait before re-trying plots which failed to load. So apparently the default value of 30 for batch_size is not suitable for all farmers (especially those with a lot of plots). I would recommend therefore recommend the following settings:
interval_seconds = 120 (or 1200 for farms with large plots)
retry_invalid_seconds = 1200
batch_size = 300
batch_sleep_milliseconds = 1
UPDATE-3: We are yet to test the effect of changing the new parallel_read parameter setting (default value for this is true). We will add another update when this is extensively done with various environments / farm sizes.
3. Plots Load Display in GUI
For those with a relatively high number of plots (several hundreds and above), a little display issue you might notice if using the GUI (in the Farm tab) is that each time you restart the application, at initialization, your Plots Count will not correctly report the number of current plots loaded until all plots have been loaded. Sometimes, the displayed number of plots would seem stuck at 30 or 60 until about 20-30 seconds after all plots have been loaded. This is just a GUI display issue because even though it shows 30 or 60 plots in the GUI, you will notice the actual number of plots loaded and being utilized for farming in the “Plots Passed Filter” column is much higher; so in reality, the application is working correctly under the hood.
I will illustrate this situation with my personal farming machine (having a total of 1573 plots, which are all residing on the farmer. I do not currently run any remote harvesters). In the screenshot below, the “Plots Passed Filter” shows the actual number of my plots loaded for farming as they are being scanned (720, then 1080, then 1500, then 1573), but the GUI displays only 60 plots throughout this scan process.
In fact, the GUI continued to report only 60 plots for another 25 seconds after all plots were fully loaded and had started passing the filter; when in reality, farming was already underway with all my available 1573 plots.
4. Automatic Config.yaml Update
It is important to note that while updating your setup, the Installer will not automatically modify your config.yaml file to add the three new plots refresh parameters mentioned above, even though their default setting will be automatically applied in the background. Therefore, after this update, without you changing any parameters, you can expect that your plots will get reloaded every 2 minutes — even if you still have a much higher number set in plot_loading_frequency_seconds — since this older parameter will be simply ignored by the new version.
The important takeaway here is that, to change this default load time after updating, you can either manually enter the new settings, or generate a new config.yaml file so that they become available. Most farmers are unfortunately unaware of this fact, so hopefully this article helps clear this up.
If you choose not to enter the new parameters manually (which would be my recommendation), you can generate a new config.yaml file having the new parameters by closing the application, removing your current config.yaml file located in the .hddcoin/mainnet/config folder and then:
- Running the “hddcoin init” command, or
- Simply launching the GUI. (Some farmers have reported that this second method will cause the GUI to become stuck at the initialization stage, with the usual spinning “connecting to wallet” prompt, so that the GUI will need to be closed and restarted).
The only issue with this automatic process is that your new config.yaml file will be regenerated with all the default settings, so you’ll need to re-enter any custom settings such as plots directory or farmer / pool reward addresses; therefore, you might want to first backup your original config file so that you can simply copy and paste the relevant parameters.
For a stuck GUI on Windows, to successfully restart the application, you will want to first manually close all of the following processes from Task Manager (if still running):
5. HDD Fractional Coin
And now, onto my favorite little change introduced in HDDcoin v1.2.5. You’ll notice that the fractional coins are now called “bytes”, and no longer “mojo”. We’re actually very excited about this one as it follows the hard disk drive theme of the coin.
1 HDD = 1,000,000,000,000 bytes.
We’re really happy with this update and can’t wait for you all to take it for a spin. To find out more or to install / upgrade, please head over to the HDDcoin download page for your operating system or check out our GitHub release page.