Skip to content
This repository has been archived by the owner on Mar 12, 2022. It is now read-only.
/ nano-dpow Public archive

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

License

Notifications You must be signed in to change notification settings

guilhermelawless/nano-dpow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nano DPoW

⛔️ 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.