Want to earn NANO for FREE completely passively?
You can do so by providing Proof of Work (PoW) for transactions on the NANO network.
Currently, there are 2 options you can use to provide PoW: either distributed Proof of Work (dPoW) or the decentralized option called P2PoW.
Since P2PoW will have an update to version 3.0 this week, adding a great GUI which will be super-simple to use, we will only discuss how to install, and use dPoW.
Note: Generally, a miner software doesn't really damage your graphics card or your CPU, since they are made for high performance. Furthermore, dPoW and P2PoW only require little computing power, so running it on your daily computer should be completely fine, and not hurt your computer. Personally, I didn’t even observe any performance changes when I was playing games and providing work on the same time.
What is dPoW
The DPoW system allows any user to support Nano community services by computing the required proof of work for transactions.
DPoW has helped reduce operating costs of community projects, such as faucets, tipping bots, and wallets. As a reward for helping, clients get occasional Nano payouts.
Why does it exist
In the Nano protocol, every block must contain a small proof of work to be confirmed by the network. While a desktop with a modern graphics card can easily and quickly compute this proof, the process can require significant resources from a server and mobile devices. Services often need to scale quickly when there is an uptick in usage, and on-demand scalable solutions based on GPUs are not available given the time-to-deploy requirements.
DPoW provides a hub between services and clients who are happy to provide their resources, in return for small payouts. Consequently, services save significantly on operating costs to operate on the Nano network.
How does it work
The image above outlines the flow of messages within the system. Services request a proof of work for a specific block (hash) from the server. The server broadcasts a request using the low-latency MQTT protocol. The first worker (client) to return valid work is rewarded, and immediately a message is sent so other clients know they can cancel the ongoing computation. Meanwhile, the work is returned to the service.
How to install the dPoW client
These steps will guide you on how to setup a new work client. The nano-work-server provided is based on nanocurrency/nano-work-server. Only this work server is fully supported. Make sure to properly follow the instructions, as missing something could be problematic.
Requirements
- Python 3.6.7 or higher. Python 3.8 and higher is currently not supported.
Installation
- Download the latest version and extract.
- Open a console under
nano-dpow-client
. On Windows, shift + right-click and "Open Powershell window here". pip3 install --user -r requirements.txt
Running
You need to find out what your GPU vendor/device numbers are if you're going to be using a GPU. Usually it will be either 0:0
, 0:1
, or 1:0
, depending on how many you have (including integrated graphics).
Linux
- Install required library
sudo apt install ocl-icd-libopencl1
- Check
./bin/linux/nano-work-server --help
for information on how to select your GPU (or CPU). - Run the work server:
./bin/linux/nano-work-server --gpu 0:0 -l 127.0.0.1:7000
- Check the client configuration options with
python3 dpow_client.py --help
- Run the client:
python3 dpow_client.py --payout YOUR_NANO_ADDRESS --work {ondemand,precache,any}
Windows
Running as a CMD process
- Edit the file
run_windows.bat
with your desired DPoW client configuration. - Run (double-click) the file
run_windows.bat
Running in the background
NOTE: There is no (easy) way to stop the client once started, other than by restarting the PC. It is also recommended that you test your config with the non-background version first, as errors won't provide any output.
- Edit the file
run_windows.bat
with your desired DPoW client configuration. - Edit the file
run_windows_background.vbs
to change your GPU settings (if necessary). - Run (double-click) the file
run_windows_background.vbs
.
Possible errors you could encounter when installing
1.) When using "pip3 install --user -r requirements.txt
", the command prompt shows you an error.
There are two options here.
a) You do not have pip installed
Shows an error like this:
pip3 : The term 'pip3' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
FIX: When installing python, make sure to check the "pip" checkmark. If you already installed python, but for some reason did not install pip, just open the installer again, click "Modify", check the "pip" checkmark, click next, and then install.
b) Your Windows PATHs for python are not configured.
FIX: You can either add proper PATHing by downloading the install client and clicking the Windows PATH button ON, or by manually adding it yourself. Follow this tutorial to learn how to do so. You can also just use "py" instead of "python", but it is recommended to install the proper PATHs.
2.) When you open run_windows.bat, you get an "Python was not found" error.
FIX: The problem is likely with PATHing again. Refer to problem 1b.
3.) "Open Powershell window here" does not show up to you when right-clicking in the proper folder.
FIX: Open your Windows Powershell manually, copy the route by clicking on the place shown in the picture, and copying the highlighted text. Then type "cd <the-thing-you-copied>", and continue as you normally would.
Running the client in the background
If you wish to run the client automatically in the background without opening it manually and having to worry about it, just add the "run_windows_background.vbs" file to your startup folder. You can do this by clicking Windows + R, and typing shell:startup, which opens the startup folder. Then create a shortcut to the background file (right click -> create shortcut), and put the shortcut in the startup folder. Make sure everything runs smoothly on the "run_windows.bat" version before using the background one, since it will not show you any logs.
Encountered any other errors?
Please comment under the post, and I will make sure to get back to you and help you as soon as possible. :)