Unofficial quick guide to FlexFarmer + Gigahorse compressed plots + Windows + WSL on Flexpool

[Crossposted from Reddit r/Flexpool by original poster/co-author]

Hi folks,

As you’re aware, compressed plots can be farmed with FlexFarmer on Linux only, as of this writing (March 19, 2023). We have no projection for when this will change or when FlexFarmer native on Windows will support compressed plots.

If you’re on Windows 10 or later, you can use Windows Services for Linux (WSL) to run FlexFarmer and access the GPU/CPU and plots you have on Windows under Ubuntu (or other Linux distros).

dew1803 on our Discord, who also helped me with the FlexFarmer + Synology Docker guide from a while back, came up with a simple guide, and I tested it out myself and made minor changes for it. Here it is.

Since this is based on two different people’s testing and screenshots, some details may vary, but we hope you’ll understand the underlying details.

Note that Flexpool support does not officially provide support for your hardware, Windows, WSL, or Ubuntu. If you need help, you may ask on the community forums (here, Discord, Reddit).

Also be sure to check the Gigahorse Github for hardware requirements - FlexFarmer generally has the same requirements listed there, although actual MiB/GiB may vary a bit (not much).

  1. Get into powershell
  • Click the Windows button,
  • type Powershell,
  • right click on Windows PowerShell,
  • click Run as administrator

Note that you do not want PowerShell x86, PowerShell ISE, or PowerShell ISE (x86) or anything but “Windows PowerShell”

2. Install WSL[1] and Ubuntu

  • at the prompt, type wsl --install -d ubuntu
  • For some users, you may not have to type -d ubuntu but it doesn’t hurt to do so just in case.
  • When you see “The requested operation is successful” you are done installing.

3. Reboot (may or may not be necessary)

  • If you see “Changes will not be effective until the system is rebooted” as shown above, reboot with the command shutdown /r /t 0 or reboot however you usually reboot (Windows button, ctrl-alt-delete, etc).
  • If you see something like the screen below, your configuration may be a bit different (mine was), and you don’t have to reboot.

2a-wsl-smooth-explicit

Linux will pop up in another window if you get this message

4. Create userid/password (may or may not be necessary)

  • If you are prompted for this, follow the instructions.
  • If you are not prompted for this, your Windows login is probably being used for WSL.

At this point you should see some Ubuntu details (your version may be 20.04 or 22.04, doesn’t really matter):

5. Download and install FlexFarmer

  • Download flexfarmer with the following command (that’s a capital O not a zero):

curl -O https://static.flexpool.io/dl/flexfarmer/flexfarmer-linux-amd64-v2.3.2.tar.gz

This will download the flexfarmer package to your home directory.

  • Then use the command:

tar -xf flexfarmer-linux-amd64-v2.3.2.tar.gz

This will create the flexfarmer directory and expand the software into it.

6. Set up your configuration (config.yml, drive paths, etc)

If you have not set up FlexFarmer before, go to

Follow instructions there to generate the contents of your config file. Once you get to step 7 on the page, please review the following:

  • Data location of plots. Each of your disks should show up under the following location: \\wsl.localhost\Ubuntu\mnt
  • This means that if you have drives D and E that contain plots, you will add the following plot directories to your config file:/mnt/d/mnt/e

if you already have a config.yml file, you can make a copy and move it to the following location: \\wsl.localhost\Ubuntu\home\<youruserid>\flexfarmer

Be sure to update your file with the appropriate plot directories as mentioned above.

You should be able to confirm the file is in the correct directory by issuing the ls command. In addition to all the default files you should now see the recently copied config.yml file.

7. Run FlexFarmer

Run FlexFarmer with the following command (that’s dot slash):

./flexfarmer -c config.yml

You should see FlexFarmer output like this:

user@windowspc:~/flexfarmer$ ./flexfarmer -c config.yml

[2023-03-17 17:40:27] INFO config: Loaded config address=xch1xxxxx farmer-pk=0xwwwww launcher=0xqqqqqqq region=us worker=windowspc

[2023-03-17 17:40:27] INFO Configured file logging path=/mnt/f/ryzen1wsl.log

[2023-03-17 17:40:27] INFO Starting FlexFarmer platform=linux/amd64 version=v2.3.2

[2023-03-17 17:40:27] INFO worker: Configured automatic failover regions regions=[de sg]

[2023-03-17 17:40:27] INFO worker: Configured farming identity plotnft-plotting-address=xch1xxxxx

[2023-03-17 17:40:27] INFO worker: Initializing plots dirs=[/mnt/f/c5] max-async=1024

[2023-03-17 17:40:28] INFO plots: Initialized plot directory dir=/mnt/f/c5 invalid=0 space=4.68 TB space-effective=6.09 TB valid=56

[2023-03-17 17:40:28] INFO plots: Initialized plots plots=56 sequential=false space=4.68 TB

[2023-03-17 17:40:28] INFO worker: Initialized Gigahorse hardware accelerator name=NVIDIA GeForce RTX 3060 num=0 platform=CUDA

[2023-03-17 17:40:28] INFO worker: Initialized Gigahorse plot backend cpu-fee=1.5% gpu-fee=3% hw-accelerators=1

[2023-03-17 17:40:28] INFO worker: Connected to the blockchain bridge gateway gateway=xch-gateway-us.flexpool.io

[2023-03-17 17:40:28] INFO worker: New signage point ch=d0bf3544b332 elapsed=57.47µs eligible-plots=1 index=40 space=4.68 TB space-effective=6.09 TB

[2023-03-17 17:40:29] INFO worker: Processed signage point elapsed=860.019485ms plots=1 proofs=0

[2023-03-17 17:40:33] INFO worker: New signage point ch=d0bf3544b332 elapsed=44.93µs eligible-plots=0 index=41 space=4.68 TB space-effective=6.09 TB

[2023-03-17 17:40:33] INFO worker: Processed signage point elapsed=452.508µs plots=0 proofs=0

You’ll know you’re GPU farming if you see that “Initialized Gigahorse hardware accelerator” with “platform=CUDA” – if your GPU isn’t supported (Maxwell 2.0/Cuda CC 5.2 or newer), you’ll see this to indicate CPU farming.

[2023-03-17 17:43:00] WARN worker: Disabled Gigahorse hardware acceleration

If you don’t see either, and the space= and space-effective= numbers are the same, you do not have compressed plots in the configured directories, and you either need to fix your config, or you can just run FlexFarmer in Windows natively.

Note that your farmer will not show up until you have one of these entries:

[2023-03-17 17:38:18] INFO pool: Partial accepted ch=c065683800de compressed=true diff=3 elapsed=2.348642583s gpu=true new-diff=3 plot=79211e96908b size=32

And it may take 10-20 minutes after that. If you have fewer than 72 plots, you will probably appear offline/inactive from time to time (same as any other farmer). But your points and work will still count.

[1] One of our Discord users noted that you may have to turn on Virtual Machine Platform and Windows Hypervisor Platform in “Windows Features” if they’re not already on, and make sure you’re running WSL 2 if you had installed WSL 1 before. Error code: Wsl/Service/CreateInstance/CreateVm/HCS_E_SERVICE_NOT_AVAILABLE · Issue #8693 · microsoft/WSL · GitHub may be of use.

4 Likes

Thanks for your clean post.
Got it to run but flexfarmer access the shared network drives. I must jhave the syntax wrong

In my working Windows Flexfarmer the network share folder is listed like this :

“\\192.168.1.230\CHIA\CHIAFARM_02\Flex”

Do you know the correct path via IP addresses for the Linux config.yml
or do the network drives have to be mounted first in linux ?
Thanks for sharing !

Wor

Y:\

1 Like

I don’t know, as I haven’t used shared drives on Windows under WSL, but I would guess they do have to be mounted in WSL first. Linux would probably not use the SMB format for path in any event, and I know that my SMB mounts in Windows were not automatically inherited by WSL.

When I added the F: drive after WSL was already running, I had to manually mount it.

I’d google “mount smb in wsl” and you’ll find a lot of options.

I think I am in a situation that is not covered by this guide.

… I don’t see this, BUT my C8 plots are reported correctly …

INFO plots: Initialized plot directory dir=/mnt/h/plots/ invalid=4 space=2.61 TB space-effective=3.7 TB valid=34

I am using a Tesla P4 on a PC, which I have successfully used for C8 plotting. The Nvidia GPU Utilization widget shows 0% utilization during farming, but was sometimes 100% when plotting. It seems that flexfarmer is not finding the P4 GPU. Is there additional configuration required for using flexfarmer with some GPU such as the Tesla P4 ?

My guess is that for whatever reason, the P4 is not detected, and you are CPU farming as a result.

The only configuration option specific to compressed plots is the “disable gpu” option.

gigahorse:
disable_hw: true

If you have this two-line config stanza in config.yml, it will not try to use a GPU at all.

This should do the job ( :

To mount a networked (SMB/CIFS) drive, with permissions such that everything is not owned by root:

sudo apt install cifs-utils
sudo mkdir /mnt/f
sudo mount -t cifs -o user=REMOTE_USER,pass=REMOTE_PASS,$( \
           echo uid=$(id -u),gid=$(id -g) )                                                             \
           //REMOTE_SERVER/SHARE_NAME /mnt/f 


It should be mentioned that if you want to to auto-mount an UNC path during startup via `/etc/fstab`, you need to escape backslashes with an additional backslash:

sudo mkdir /mnt/remoteshare
sudo echo ‘\\RemoteMachine\RemoteShare /mnt/remoteshare drvfs 0 0’ >> /etc/fstab
sudo mount -a

1 Like

I checked with the devs and they said they did test with P4 successfully. Make sure you check that the drivers are installed in the base operating system (I don’t believe WSL has its own GPU drivers, as the hardware seems to be virtualized through to WSL).

.

Hello. Did install WSL in Win10. Bacause it is the only way to farm compressed plots in Windows :frowning: And I installed linux flexfarmer succsefully in WSL. I am having Ubuntu 22.04.2 LTS. I am ploting&farming on local machine, local disks. Plots are at my E: and F: disks. Did try copy/paste config.yml from my windows flexfarmer, but it didnt work (of course:). Did then edit paths to /mnt/e /mnt/f , but I am getting this error:
ERROR config: Failed to load configuration error=failed to parse yaml: yaml: unmarshal errors:
*** line 1: cannot unmarshal !!str /mnt/f/ into []string***

If I change it to windows syntax "F:", I get this error:
ERROR config: Failed to load configuration error=failed to parse yaml: yaml: line 2: did not find expected key

If I try with - "F:" (or - “F:/”) I get error:
ERROR config: Failed to load configuration error=failed to parse yaml: yaml: line 5: block sequence entries are not allowed in this context

I did try to edit and insert my farmer secret key (0x351bbe7…) with and without " (but I think it should be with ", as I get less errors then)
Excactly the same farmer secret key settings in config.yml was working ok in windows flexfarmer.

What did I missed ? how can I debug, what is wrong ?

Ahhhhh !!! this is the correct syntax !! thanx MadderHat from Discord channel :))

=============

plot_directories:
- /mnt/e/1stDirectory
- /mnt/f/DirectoryA
- /mnt/f/DirectoryB
- /mnt/f
- /mnt/g/4thDirectory

farmer_secret_key: "0x351bbe74xch***typeinyours***"
launcher_id: "0x22faebxch***typeinyours***"
worker_name: MyNamedFarmer3
region: de
payout_address: "xch***typeinyours***"
license: true

======================

We should have in this manual also information that usefull program for easy editing in Linux is PICO … type pico config.yml , then edit it, copy/paste from another window, and close&save with CTRL+O

And that our 1st command should be cp config_template.yml config.yml
and that you forgot mentioning last line in config.yml which is license: true

hi i’m new to all this gigahorse plotting , i’m trying to get flexfamer to work but keeping getting a message

wrxsti@DESKTOP-MBSMQDR:~$ ./flexfarmer -c config.yml

-bash: ./flexfarmer: Is a directory

wrxsti@DESKTOP-MBSMQDR:~$

can any one point me in the right direction , thanks

You can’t run a directory. You have to cd into the directory and run the program.

user@windowspc:~/flexfarmer$ ./flexfarmer -c config.yml

You have to be in the directory where the program is.

not sure what i was doing , was just following the guide

7. Run FlexFarmer

Run FlexFarmer with the following command (that’s dot slash):

./flexfarmer -c config.yml

sorry for being stupid , when i start ubuntu up its looks like this

To run a command as administrator (user “root”), use “sudo ”.
See “man sudo_root” for details.

wrxsti@DESKTOP-MBSMQDR:~$

what do i type in after the $

sorry to be a pain

Yes, I don’t know that I can update the original post to mention that you have to be in the directory with the program, to run the program in the current directory. You’ll note the example I gave is two lines after what you quoted. And the two lines above what you quoted are also relevant:

You should be able to confirm the file is in the correct directory by issuing the ls command. In addition to all the default files you should now see the recently copied config.yml file.

So you would do:

cd flexfarmer

and then

./flexfarmer -c config.yml

Assuming you extracted the downloaded Flexfarmer package from your home directory in step 5.

2 Likes

thanks you so much , now working :grinning:

I am expiriencing these errors lately while starting in WSL.
slika

After this error, mount disk disapears and I have to restart PC.
Would v2.5 help ?!

curl -O https://static.flexpool.io/dl/flexfarmer/flexfarmer-linux-amd64-v2.5.0.tar.gz

I don’t think FlexFarmer can fix I/O errors where your drive disappears, as this is not a FlexFarmer issue, but a hardware issue (or possibly OS).

You could try updating, but this error means the drive goes away as far as the system or Windows or WSL can see, not anything on the FlexFarmer side. So I don’t think it makes a difference, and you have other issues to dig into on the system itself. Could be cabling, or a drive starting to fail, or a USB hub flaking out, or any number of other things.

Thanx. Will inspet it.

Strangely, in Windows OS those drives dont deasaper. They disapera only in Linux WSL, and only after I start flexfarmer. And after few tries when they work ok, the work.

Only when the dont :slight_smile: today I have this errors - disks are proper SATA cabling, connected direct to motherboard:

Where do I start to investigate them ? In Windows Task manager disks are only 8KB/s needed, with fast 0.2ms response time. It seems to me it is WSL isue !?

Looks like you need to move away from Flexfarmer anyway.

https://www.reddit.com/r/Flexpool/comments/16q72ul/action_required_flexpoolio_shutdown_notice_nov_1/

1 Like

Ahhhhhh. thanx for info… so, only 37 days let, to debug my problem :)) ccccc

What should I do with all that C7 flexfarmer plots !? damn !