Difference between revisions of "ProgPoW"

From Veriblock Wiki
Jump to: navigation, search
(Created page with "See: ProgPoW_TestNet, FPGA_Mining __TOC__ == Overview == ProgPoW is a memory-hard Proof-of-Work algorithm designed to limit the performance and power efficiency adv...")
 
m (VeriBlockTim moved page ProgPow to ProgPoW)
(No difference)

Revision as of 01:52, 26 June 2020

See: ProgPoW_TestNet, FPGA_Mining

Overview

ProgPoW is a memory-hard Proof-of-Work algorithm designed to limit the performance and power efficiency advantages that custom hardware has over commercially-available consumer GPUs. While building a custom chip for ProgPoW is possible, such a device would likely be very similar to a modern consumer GPU and have similar performance-per-watt.

ProgPoW is a proposed replacement to Ethash, Ethereum's current memory-hard algorithm. ProgPoW is based on Ethash, but is modified to have much higher utilization of the compute capabilities of modern GPUs while remaining memory-bound.

For more information on ProgPoW, please see: https://medium.com/@ifdefelse/understanding-progpow-performance-and-tuning-d72713898db3

Roadmap

  1. [DONE] Determine new Algorithm (ProgPoW)
  2. [DONE] Internal End-to-End Testing
  3. [DONE] Launch Private TestProgPoW Network
  4. [IN-PROGRESS] Launch Public TestProgPoW Network
    1. NodeCore Update
    2. Miner Updates from Private Testing Feedback
  5. Network Proves Stability
  6. Make Final Decision on ProgPoW Parameters
  7. Schedule TestNet Hardfork to ProgPoW
  8. Schedule Hardfork of MainNet (Exchanges, Pool Admins, Bootstrap Nodes)
  9. ProgPoW TestNet Hardfork Occurs
  10. ProgPoW MainNet Hardfork Occurs

How to Mine

See: https://wiki.veriblock.org/index.php/ProgPoW_TestNet

FAQ

Is There a Reward for Mining ProgPoW Testnet?

Currently ProgPoW is being tested by community volunteers.

There may be additional bounties to help incentive various testing.

Is the Version of ProgPoW Used on TestProgPoW Network Finalized?

No, the version of ProgPoW used on the TestProgPoW network does not reflect the final configuration of the ProgPoW network which will be used in MainNet.

Why ProgPoW?

ProgPoW is a standard GPU algorithm with widespread miner and community support, and significant research & vetting.

Is ProgPoW Truly ASIC Resistant?

It is widely believed that the ASIC for ProgPoW would have minimal chip die size and power consumption advantages over existing consumer GPUs.

However, ProgPoW is designed (and the specific configuration parameters of ProgPoW selected at the time of implementation are chosen) with current consumer GPUs in mind. Future generations of consumer GPUs are unlikely to keep the same memory bandwidth & compute power balances as current GPUs, and are likely to continue introducing additional specialized circuitry (ex: ray tracing and tensor cores) which are not utilized by ProgPoW. As a result, the further consumer GPUs deviate in the future from their current architecture, the larger of a die size (thus increased yield and reduced cost) advantage a ProgPoW ASIC would have relative to commercially-available GPUs.

While ProgPoW could be continually adapted to new generations of GPUs (and even heavily modified to make use of the specialized circuitry for applications like ray tracing or tensor calculations), doing so would require hard-forking the network for each "re-tuning" of ProgPoW, and would also reduce or eliminate the ability of older generations of cards to participate, making them far less competitive than they would normally be from generation-over-generation performance improvements alone.

Does NodeCore Still Use vBlake?

No, ProgPoW is a separate Proof-of-Work algorithm.

Does This Use Stratum?

Yes, the built-in pool software in NodeCore has been upgraded to support the EthereumStratum/1.0.0 protocol with appropriate modifications for ProgPoW (adding block height information to mining.notify) and for VeriBlock (4-byte top-level nonce instead of 8-byte). This modified version of EthereumStratum/1.0.0 is the protocol used by the reference CUDA & OpenCL ProgPoW miner.