Skip to content

Nano's unofficial Distributed Proof of Work (DPoW) system

License

Notifications You must be signed in to change notification settings

RickiNano/nano-dpow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nano DPoW, windows edition

This is a fork of the original dPow to make it easier to install and run on windows

Installation on windows 10 or 11:

  • Download and install Python v3.7.3 from python.org
  • Open a command prompt and navigate to /nano-dpow/client
  • type: pip3 install --user -r requirements.txt
  • run the file run_windows.bat

Troubleshooting:

  • Pip3.exe not found If you get this error when running the pip3 command you may need to specify the absolute path to pip3.exe.

You can do this by searching your c drive for 'pip3.exe' and inserting the path.

Example:

C:\Users\username\AppData\Local\Programs\Python\Python37\Scripts\pip3 install --user -r requirements.txt

  • 'python.exe is not recognized as an internal or external command'

Same thing as above. You have to edit run_windows.bat and change python.exe to the absolute path

Original documentation

⛔️ No longer maintained! ⛔️

DPoW

Discord

Welcome to the Distributed Proof of Work (DPoW) system. 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 this 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

DPoW

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.

Using DPoW

Documentation

You can read more about the DPoW message specification.

Running a work client

Read more on the client documentation page.

Requesting work for your service

Read more on the service documentation page.

Please contact us on The Nano Center discord server for further assistance.

Running your own server

Read more on the server documentation page.

We have made efforts to make it easier for anyone to run a DPoW server for themselves. If you need any assistance, please use the discord server or Github issues page.

Resources

DPoW servers deployed - Dashboard

  • DPoW - the original, improved
  • BoomPoW - used by Banano, has contributed some improvements to DPoW

Alternative approaches

  • P2PoW is a P2P protocol which allows users to trustlessly request work from others. It is more inefficient than DPoW, as it requires two blocks for each request, but removes the middleman (server) which is a central point of failure of the system.

About

Nano's unofficial Distributed Proof of Work (DPoW) system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.0%
  • Batchfile 1.5%
  • Other 0.5%