merakmarey / madFurry

madFurry - a madMax plotter GUI
7 stars 0 forks source link

Network storage results in farmer errors #5

Open Mecadguy opened 3 years ago

Mecadguy commented 3 years ago

Using a network storage drive as the destination results in invalid plots. This happens when the file copy takes more than a few seconds. I use a 2.5 GBps network copy, and the plots are all copying to storage as "invalid." Solution would be to rename completed plots in the temp directory to .TMPPLOT, copying them to the destination, and then renaming them to .PLOT. The rename is instant, so the GUI farmer recognizes the renamed PLOT immediately, and ignores the *.TMPPLOT files during the lengthy transfer period.

I would defiantly donate if you can fix this issue, as this makes the program useless for my needs.

merakmarey commented 3 years ago

This is not an issue with madFurry, this is an issue with the chia farmer. I already opened a ticket on the chia git but they have not provided a solution yet. As for your solution, yes, it could be implemented. Let me know as soon as you donate to start working on it! :)

Mecadguy commented 3 years ago

You bet !

I’m running this now to work out the bugs then I’ll donate.

In the interim I wrote a simple powershell script to do my workaround. It’s letting it go a day to make sure it’s working.

I think the most powerful thing about your program is (a) madmax obv and (b) the multiple destinations. I really love that. Very cool implementation.

On Sat, Sep 18, 2021 at 2:25 AM Merak @.***> wrote:

This is not an issue with madFurry, this is an issue with the chia farmer. I already opened a ticket on the chia git but they have not provided a solution yet. As for your solution, yes, it could be implemented. Let me know as soon as you donate to start working on it! :)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/merakmarey/madFurry/issues/5#issuecomment-922212621, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVV4XAV4KBISHCCF47O3NUTUCQWGPANCNFSM5EIZYFJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

merakmarey commented 3 years ago

Thanks! Hope you enjoy it :)

merakmarey commented 3 years ago

One question though...what version of the chia blockchain farmer you have?

Mecadguy commented 3 years ago

I have v 1.2.5. Here is a workaround for the ChiaGUI bug.

The core issue is that copying to a remote network farmer causes the plots to copy as "invalid" because the Chia GUI sees them as soon as windows starts to write them to the folder that ChiaGUI is farming from. Initially they are invalid, as the plots take 5-10 minutes to copy over LAN.

I have a simple script workaround that prevents this from happening. This is NOT a MadFurry problem, and is an inherent Chia GUI issue. I have the same issue with MadMax.

Setup MadFUrry to use folders called "TEMP" on multiple destination drives. Setup ChiaGUI to farm from the root directory of the multiple destination drives. The script below will then scan the TEMP folders for completed PLOT files, and when they arrive 100%, it will move them into the root directory where ChiaGUI can see them.

If a file is mid-copy, the script will alarm, and will NOT move the plot file that is "in use" while still copying it. It will move it the next loop of the script.

Powershell script is below; its starts the MadFurry.exe anbd starts an automatic copying script. Each network destination drive MUST HAVE a "Temp" folder within the drive for the script to work:

POWERSHELL SCRIPT:

param([switch]$Elevated)

function Test-Admin {

$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())

$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)

}

if ((Test-Admin) -eq $false) {

if ($elevated) {

tried to elevate, did not work, aborting

} else {

Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))

}

exit

}

Delete all temporary files from NVME & SSD

only deletes temp files from the RAM drive and NVME plotting drive once on fresh mining start.

Get-ChildItem -Path A:\ -Include . -File -Recurse | foreach { $_.Delete()}

Get-ChildItem -Path B:\MadFurryTmp\ -Include . -File -Recurse | foreach { $.Delete()}

cls

'<------------ Deleted all RAM Drive and Temp files --------------->'

Trims the NVME drive

'<------------ Trim Starting -------------------------------------->'

Optimize-Volume -DriveLetter B -ReTrim -Verbose

Starts the MadFurry.exe - you still need to hit the "start" button within the EXE

C:\Users\johnh\Desktop\ChiaCoin\MadFurry_Plotter\madFurry_0.9.1\madFurry.exe

cls

'<--- Initializing File Mover --->'

(Get-Date).DateTime

'<--- Sleeping 25 minutes ------->'

25 minutes (1500 seconds) initializtion sleep on the file copy; it takes my computer about 50 minutes to plot with MadMax; this allows my copy function to start in the middle of a plot, and not in Phase 1

sleep 1500

A loop command moving all *.PLOT files out of the TEMP folder and to the final destination that Chia GUI looks for

for($s=1; $s -le 50000; $s++)

{'<--- Plot Temp Move Starting --->'; (Get-Date).DateTime; Move-Item -path z:\Chia-1-NFT\Temp*.plot -destination z:\Chia-1-NFT; sleep 1; Move-Item -path z:\Chia-2-NFT\Temp*.plot -destination z:\Chia-2-NFT; sleep 1; Move-Item -path z:\Chia-3-NFT\Temp*.plot -destination z:\Chia-3-NFT; '<--- Plot Temp Move Complete --->';'<--- Sleeping 50 mins --------->'; (Get-Date).DateTime; sleep 3000}

At the end of the loop it pauses 3000 seconds (50 minutes) and restarts at the middle of the next plot, to avoid exccessive loads during Phase 1.

merakmarey commented 3 years ago

Since Chia Network wouldn't address this I'm already working on a fix. I opened a ticket few months ago when this siiue appeared, and they were unable to fix it.