dodopow 0.1.0

Cuckoo Cycle-like PoW mechanism for CPU execution
Documentation
  • Coverage
  • 83.33%
    5 out of 6 items documented0 out of 5 items with examples
  • Size
  • Source code size: 17.97 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 331.92 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 10s Average build duration of successful builds.
  • all releases: 10s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • krypt0nn/dodopow
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • krypt0nn

DodoPoW - Cuckoo Cycle-like PoW mechanism for CPU execution

This library provides a PoW task similar to the Cockoo Cycle's lean mining, prioritizing single-core CPU execution. The purpose is to fight against GPUs and ASICs and improve networks decentralization by utilizing general purpose CPUs which all the people have.

Core principle

DodoPoW builds a bipartite graph of 2N nodes and N = 2^n edges, where n is configurable and impacts the amount of used RAM and compute time. The PoW task is to find a cycle of length diff in such a graph which is sampled from any seeded RNG. diff scaling reduces probability of finding such cycles.

In blockchain applications this algorithm can be used with standardized n value. A miner can struggle to find a cycle with pre-defined diff value, thus it's recommended to scale miner's payment exponentially-like with the diff value growth and allow them to choose this value as they like.

Note: the implementation in this library is not optimized for performance, its goal is to be correct. Extra difficulty tricks can be used to adjust the computation speed limit in runtime.

Author: Nikita Podvirnyi
Licensed under MIT