This is the first topic in a series about work generation in Nano. The goal is to help lay out the various considerations, goals and areas of friction for everyone to further discuss and analyze as we continue evaluating changes to make the network operate as effectively as possible for participants.
We also have some potential changes we'd like to put forward to the community to help analyze and consider for supporting in future releases. Some of the ideas will take multiple releases to accomplish, but hopefully move towards easing the areas of friction around work generation.
We are breaking this up into a series of topics to hopefully better focus discussions on different areas. Below is a brief overview and additional related topics will be linked and updated here as well as at the bottom of the topic:
One of the most unique characteristics of the Nano network is the use of proofs of work as one of the mechanisms allowing the network to operate without fees. It is a huge boost to the user experience when functioning smoothly, but also comes with some drawbacks in its current form.
Through node V18 the work generation was a single, static threshold for all blocks which operated as a validation method only. With V19 this value started to be trended over time and used to better prioritize the elections seen - the higher the work value, the higher on the priority list a transaction would be for generating consensus on.
Recently, improvements in V20 helped further improve prioritization and with V21 the foundations for splitting work difficulty levels to be both lower for receive blocks and higher for send/change blocks.
There is still work to be done around work generation and as it is a large part of efforts on the network it is worth doing some extended exploration. For those who want to do some more research below are some related resources worth reading to get up to speed.
We're looking forward to seeing what everyone thinks about work generation. This first topic is a good place to mention your top concerns at a high level.
Documentation & articles
- Nano How 4: Proof of Work - great summary of how PoW in Nano works
- Dynamic Proof-of-Work & Prioritization - overview of how prioritization works with dynamic PoW values
- Work Generation guide - detailed information about setting up for proper work generation, plus some details about current benchmarks, algorithms, etc.
- V21 PoW Difficulty Increases - announcement of PoW difficulty increases for V21
- PoW Multipliers (Anti-Spam Brainstorming) - ideas around shaping PoW differently based on various account, transaction or network conditions
- Precomputed PoW & DoS - discussion of a time-based chain to compute PoW from
- Minimum memory requirement in a new PoW algorithm - discussions around minimum memory requirements for potential new PoW algorithm
- Equihash as new PoW algorithm - details about new Equihash-based PoW algorithm for more memory hardness
- Increasing minimum work difficulty with current PoW algorithm - discussions prior to the decision to increase work in V21
Work Generation Series topics