EWBF Zcash Cuda Miner
I briefly mentioned it while reviewing the EVGA GTX1080 card, but I thought I would take some time to go over EWBF’s Zcash Cuda Miner in more detail and help anyone unfamiliar with the program or mining in general to get setup and running quickly with it under Windows.
The latest version of the mining program itself can be found on EWBF’s Zcash Cuda Miner thread on the Bitcoin talk forum. The current version of the miner as of this article is version 0.3.3b.
The EWBF Zcash Cuda Miner is written primarily for Nvidia cards running under Windows, and in its description the developer indicates that it is: “Written for Pascal GPUs but works on cards with at least 1Gb memory, and Compute Capability 2 and higher.”
For those who may be unfamiliar, Pascal is the code name for Nvidia’s latest micro-architecture which includes all GeForce 10 (10xx) series cards, such as the GTX 1050, GTX 1060, GTX 1070, GTX 1080, the Ti variants as well as Titian X and Xp cards. So basically the miner is optimized for Nvidia 10 series cards, but should still work with most Nvidia cards that have at least 1 GB of on-board memory and Compute 2.0 or higher capabilities.
When the mining software was first released the developer also claimed that he: “Expected speeds (of) 435 sols/s (with a) GTX 1070 (and) 295 (sol/s with a) GTX 1060 6G (running under) Stock settings.” I believe things have improved since the first version with users reporting speeds of over 450 sols/s with a GTX 1070, and my own results of up to 560 sol/s with a GTX 1080.
Similar to the Claymore miner (which does not currently support Zcash mining under Windows), the EWBF miner contains a 2% developer fee which can be turned off in the batch file. It is noted in the thread that disabling the fee will slightly reduce hashing power, similar to that same behavior with Claymore’s miner.
The other software I will be using in this guide and recommend is MSI’s Afterburner, which the latest version can be found on the MSI site here. The version of Afterburner I used for the guide is 126.96.36.19967.
The basic steps to mine Zcash (or any cryptocurrency really), can be summed up as the following:
- Have a PC that can support a late model GPU, usually requires PCIe 3 x16 slot, and a power supply that can power said GPU.
- Have a late model GPU (in this case Nvidia 10xx series) that can efficiently mine your desired coin (Nvidia works well with Zcash and clones, AMD works well with most others).
- Install the latest graphic drivers for your specific GPU and OS, (i.e. GTX1080 on Windows 10 64-bit).
- Obtain a wallet address for your desired coin from either an exchange or your own locally installed and managed wallet.
- Choose a pool that supports your desired coin (in this case Zcash).
- Choose and download an appropriate mining program that supports, a: your desired coin (Zcash), b: your GPU (GTX 1080), c: your operating system (Windows 10), and sometimes d: your pool (rarely but does occasionally happen).
- Configure the mining software (usually via batch file) to point to your desired pool and mine to your wallet address, as well as any GPU specific options you may need (or want) to enable (if supported).
- Run and verify that the software is mining correctly. After several minutes check your pool for statistics (should see some shares appearing), and after minimum payout level is reached (could be days with one or two cards) check your wallet or exchange to confirm payment was sent by the pool and properly received.
- Sit back and watch you coins roll in while enjoying a beverage of your choice (optional).
Covering these steps more in detail, to get started mining Zcash with EWBF you will need a Windows based PC (or mining rig) and a late generation Nvidia GPU, preferably a GTX10xx series such as the GTX 1080 that I will be using.
You will need to be sure your graphics drivers are up to date. The Nvidia graphic card drivers I used for this guide are version 382.33 WHQL. You can download the latest Nvidia drivers here.
You will also need a Zcash wallet address either from a Zcash wallet you installed and run on your own PC, or a Zcash “Deposit” address from an exchange. I would recommend learning how to install run your own wallet unless you are only going to mine with a few cards and plan to exchange the coins right away. Several of the large exchanges support Zcash so you can obtain a wallet address from one such as Kraken, Poloniex, or Bittrex to name just a few.
You will need to pick a pool that supports Zcash. Some of the more popular pools include Flypool, Nanopool, Nicehash, Suprnova among others. You can get a more detailed up-to-date list by searching Google for “Zcash mining pools”. For this guide I will be using the Flypool Zcash mining pool.
While not mandatory, it is recommend to install a GPU overclocking utility such as MSI Afterburner to be able to optimize your GPU settings to mine the most efficiently. The installation of MSI Afterburner is straight-forward and should not require a reboot. For the EWBF miner there is nothing to install as we will be simply extracting the programs folder and running the program’s exe. We will however need to modify one of the example batch files included with the miner in order to get started.
By default the EWBF miner should extract to a folder named “Zec miner 0.3.3b” unless you changed it. I would recommend placing this folder somewhere easy to get to, such as the root of your C drive, your Desktop, or somewhere you can easily locate it. For this guide I extracted it to: “C:\Zec miner 0.3.3b“. Open up the Zec miner 0.3.3b folder and you should see files similar those those below:
Here you can see the miner.exe which is the main program, a couple of support dll’s (Dynamic Link Libraries), a help.txt file with some basic command overviews, as well as several .bat (Windows batch) files with example configurations for several mining pools that support Zcash.
You will now need to choose a pool in which to mine at. Most pools now use your wallet address as an account, with payments sent automatically to your wallet address once you reach the pool’s payment threshold. There are still some exceptions to this, such as the Suprnova pool which still requires you to register an separate account and input your wallet address separately.
For this guide I am going to use the Flypool Zcash mining pool and will modify the flypool.bat file. This file will need to be modified with your wallet address as well as any other extra option you wish to enable. A copy of my modified batch file is shown below:
The batch file consists of basically the following format:
- miner (calls the miner.exe program, everything afterwards are parameters to be set upon launch)
- –server us1-zcash.flypool.org (the — indicates a parameter with a valid keyword will follow, in this case server. Then a space and the variable for the parameter, in this case the flypool server address.)
- –port 3333 (same as above, the server port parameter, a space and the actual variable 3333, which is obtained from the pool documentation).
- –user <your wallet address.rigname> (this will be your wallet address followed by a dot (or period) and an optional name for your rig. In this case I am simply calling it the model of my video card or GTX1080).
- –pass z (the actual value of this parameter is usually ignored by pools but oftentimes required by either the pool, mining program, or both. Can be set to something like “X” or “Z” unless your pool requires a specific password).
- –pec (optional) (this last optional parameter is telling the miner to run in performance reporting mode and will periodically display your overall hash/watt ration. It takes no variables and is more of an on/off flag as it defaults to off without this parameter being set)
Once you have your batch file configured with your settings, it is time to test it out. Save and close the text editor and then double click on the batch file to run the program. If everything is running correctly you should get a screen similar to the one shown below:
Notice I only have one GPU running. If you have multiple GPUs they all should be displayed as separate line entries starting with 0. At the top we can verify the mining program and version, the server, solver we are using (in this case the default or auto selected), devices configured for mining (more for multiple GPU systems, in our example just one even though it says all), max temperature limit of 90 degrees C (default setting) after which point the mining software will shutdown to prevent GPU damage, and information on if the optional API is enabled or disabled, as in our case.
Following the startup information. we can see we are getting block information from the pool and that our graphics card(s) are detected and being assigned new work. After a little bit you shoudl start seeing shares accepted messages indicating your GPU has found a solution, submitted it the the pool and it was accepted.
Routinely during its operation the miner will also display useful information such as the GPU temperature(s), sol/s per card and total sol/s. The part highlighted in a table fashion is what was enabled by using the –pec flag above and displays a rough efficiency reading you can later use to help fine tune your settings.
For now though, just keep the miner running for 30-60 minutes at default settings just to make sure everything is working properly. This will also allow time for your card to find a few shares and for the pool to accept them and tabulate them on your wallet display page. There can be sometimes a 10-15 minute delay from when your shares are first accepted and any statistics to appear on the pool side, so now would be a good time to go grab a cup of coffee.
Monitoring the Pool
After letting your newly setup miner run for about 20-30 minutes, you can check the pool to confirm you shares are being counted and see some pool-side statistic of your mining progress. On the top right of the Flypool Zcash homepage (shown above) you can enter your Zcash wallet address and click on Check Status to get to your own wallet personal statistics page.
Once on your wallet statistic page (if it is blank or your get an error be aware that it may take several minutes to generate if your are newly mining to the pool) you should now be able to confirm your shares are being correctly received and accounted for. In the image shown below I have pulled up my statistic page. I have five miners pointed at this particular address right now, including the EWBF running on a single GTX 1080, which is shown below as the first entry.
As you can see, Flypool offers quite a bit of information on your progress. At the top we have Hashrates which show your current (2 hour) and long term (24 hour) average hash-rates, your Immature Balance (which is simply the coins not yet fully confirmed on the network), Unpaid Balance which is you confirmed coins waiting to be paid once you reach the payment threshold, number of active workers, and a summary of submitted shares in the form of valid/invalid.
Below this there a graph displaying you current and long term averages in a more visual manner over time, followed by a bar graph of your shares submitted over time. Next there is a graph displaying active workers, which is only really useful if you have more than one and one or more would drop off the pool.
Finally at the bottom we have the per worker statistics. If you have only one worker all these fields will show the same statistics, but this area breaks out the data for individual workers, where everything above was an aggregate of all your workers.
It is a bit hard to see at this resolution, so I zoomed in a bit on the GTX1080 as you can see below.
As you can see our current Hashrate is showing as 506.7 H/s, which is equivalent to the Sol/s reading on the miner. The avergae hashrate is showing as 494.6 and is the effective rate for the past 24 hours. I should point out that this rate is slightly lower than the average mainly as I shut this miner down a few times in the course of writing this guide. The final part are the valid and invalid shares. Obviously you want as near as 100% valid and 0% invalid as possible, but don’t be too concerned if your see 1 0r 2% in the invalid column on occasion.
If the invalid shares were to exceed 3%, or stay at a constant 2%, you should check first to making sure you are connected to the flypool server nearest you. If you look on their homepage they will list different addresses for servers located in different parts of the world. The next thing to check would be back on the miner to make sure you are not seeing any errors being generated there. There are too many possible scenarios to cover all in this introductory article, so I will leave any in-depth troubleshooting for a later guide.
If all is looking good at this point, congratulations, you have successfully setup the EWBF miner and pointed it to a pool and are earning Zcash. After some time you can go to the Payouts tab to get a rough estimate of your expected income, but the numbers don’t really mean much until at least 24 hours of constant mining have gone by.
I think I will end this guide at this point for now as it is getting to be quite long. While I originally intended to cover fine tuning and going over other optional arguments that the EWBF miner can use, I think I will wait and make this a two part guide. For now this Part 1 covers the basic setup and configuration of getting the EWBF miner running and shares being submitted to a pool. Since it will usually take some time before reaching a pools minimal payout period anyway, especially for just one or two cards, we have some time.
For now enjoy your mining and please leave any comments below if I missed something or you have any questions.