Difference between revisions of "Home vProgPoW"
VeriBlockTim (talk | contribs) Tag: New redirect |
VeriBlockTim (talk | contribs) |
||
(14 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | # | + | See: [[ProgPoW_TestNet]], [[FPGA_Mining]], [[List_of_mining_pools]] |
+ | |||
+ | __TOC__ | ||
+ | |||
+ | '''Interested in mining? See here: [https://wiki.veriblock.org/index.php/HowTo_run_vProgPoW_GPU_Miner vProgPoW GPU Mining HowTo] | ||
+ | |||
+ | See: [https://medium.com/@veriblock/veriblock-vprogpow-gpu-mining-and-economically-gated-asic-transition-plans-c62a9046e1fa vProgPoW Medium article] | ||
+ | |||
+ | == Overview == | ||
+ | |||
+ | '''vProgPoW is a heavily modified version of ''ProgPoW v0.9.3''.''' It is custom-tuned to the VeriBlock blockchain, and '''intentionally leaves in (and tweaks) the ASIC-friendly "exploit" present in ProgPoW <=0.9.3 as a ''natural, economically-gated ASIC transition plan for the VeriBlock network'''''. | ||
+ | |||
+ | To learn more about the internal specifics of vProgPoW, how the economically gated ASIC transition plan is designed, and what modifications to ProgPoW were made to create vProgPoW, visit our [https://medium.com/@veriblock/veriblock-vprogpow-gpu-mining-and-economically-gated-asic-transition-plans-c62a9046e1fa Medium article]. | ||
+ | |||
+ | The original 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. 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. | ||
+ | |||
+ | == vProgPoW Miner and Pool Bounties == | ||
+ | To celebrate the launch of vProgPoW on VeriBlock, several bounties are available for collection from GPU miners and pool operators. Starting at the vProgPoW fork height of 1512000, the following bounties will become available: | ||
+ | |||
+ | # First five pools to mine '''10+ blocks''' will receive a '''20k VBK bounty''' | ||
+ | # First pool to mine a '''block with over 100 PoP transactions''' gets '''20k VBK''', and the '''miners who mined the block will split 20k VBK based on their contribution to that mining round''' | ||
+ | # First pool to mine a block with the hex patterns '''"C0DE9"''' ("code9"), '''"C0011"''' ("cool1"), and '''"F000D"''' ("foood") will each receive a '''20k VBK bounty''', and the '''miners who mined the each hex-pattern-matching block will split 20k VBK based on their contribution to that mining round''' | ||
+ | |||
+ | This section will be updated as bounties are claimed. Note that some lag between a bounty being completed and it being paid out and updated here to reflect the bounty being claimed is to be expected. | ||
+ | |||
+ | == Roadmap == | ||
+ | |||
+ | # [DONE] Determine new Algorithm ('''vProgPoW''') | ||
+ | # [DONE] Internal End-to-End Testing | ||
+ | # [DONE] Launch '''Private TestProgPoW Network''' | ||
+ | # [DONE] Launch '''Public TestProgPoW Network''' [6/25/2020] | ||
+ | ## NodeCore Update | ||
+ | ## Miner Updates from Private Testing Feedback | ||
+ | # [DONE] Network Proves Stability | ||
+ | # [DONE] Make '''Final Decision on vProgPoW Parameters''' - see: [https://medium.com/@veriblock/veriblock-vprogpow-gpu-mining-and-economically-gated-asic-transition-plans-c62a9046e1fa vProgPoW Specifications Medium Article] | ||
+ | # [DONE] Schedule '''TestNet Hardfork''' to vProgPoW | ||
+ | # [DONE] Schedule '''MainNet Hardfork''' (Exchanges, Pool Admins, Bootstrap Nodes) | ||
+ | # [DONE] vProgPoW '''TestNet Hardfork''' Occurs - TestNet block 872000 (Friday September 18th, 2020) | ||
+ | # [DONE] vProgPoW '''MainNet Hardfork''' Occurs - MainNet block 1512000 (Monday September 21st, 2020) | ||
+ | |||
+ | == How to Mine == | ||
+ | |||
+ | See: https://wiki.veriblock.org/index.php/HowTo_run_vProgPoW_GPU_Miner | ||
+ | |||
+ | == FAQ == | ||
+ | |||
+ | === Is the version of vProgPoW Used on TestProgPoW the same as the one used on MainNet? === | ||
+ | |||
+ | No, initial testing on the TestProgPoW testnet network was not a finalized version of the vProgPoW PoW algorithm which was eventually selected for use in VeriBlock's mainnet network. The changes vProgPoW made to ProgPoW 0.9.3 can be found on our [https://medium.com/@veriblock/veriblock-vprogpow-gpu-mining-and-economically-gated-asic-transition-plans-c62a9046e1fa vProgPoW Medium article]. | ||
+ | |||
+ | Old mining software which worked on TestProgPoW will have to be updated to be able to mine on both the MainNet and TestNet blockchains. | ||
+ | |||
+ | === Why vProgPoW? === | ||
+ | |||
+ | ProgPoW is a standard GPU algorithm with widespread miner and community support, and significant research & vetting. | ||
+ | |||
+ | '''vProgPoW modifies ProgPoW significantly and offers a gradual, economically gated ASIC transition plan for the VeriBlock network.''' | ||
+ | |||
+ | === Is vProgPoW ASIC Resistant? === | ||
+ | |||
+ | No: '''at low network difficulties, vProgPoW is a GPU-only algorithm.''' However, '''at high network difficulties, vProgPoW is specifically designed for ASICs to become viable.''' | ||
+ | |||
+ | The original ProgPoW was 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 the original ProgPoW algorithm 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. | ||
+ | |||
+ | As a result, vProgPoW was created, which modifies an ASIC-friendly "vulnerability" in ProgPoW 0.9.3. VeriBlock’s vProgPoW will allow the blockchain to get the best of both worlds: GPU-only mining in the early days, and a gradual economics-powered cut-over to a very simple ASIC design that any ASIC engineering firm could build a competitive small-die chip for, and which could be packaged in small entry-level devices for improved mining decentralization and accessibility. | ||
+ | |||
+ | === Does VeriBlock still use vBlake? === | ||
+ | |||
+ | No, vProgPoW is a separate Proof-of-Work algorithm. | ||
+ | |||
+ | === Does vProgPoW Mining 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 vProgPoW (adding block height information to mining.notify) and for VeriBlock (5-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. |
Latest revision as of 20:32, 17 March 2021
See: ProgPoW_TestNet, FPGA_Mining, List_of_mining_pools
Contents
Interested in mining? See here: vProgPoW GPU Mining HowTo
Overview
vProgPoW is a heavily modified version of ProgPoW v0.9.3. It is custom-tuned to the VeriBlock blockchain, and intentionally leaves in (and tweaks) the ASIC-friendly "exploit" present in ProgPoW <=0.9.3 as a natural, economically-gated ASIC transition plan for the VeriBlock network.
To learn more about the internal specifics of vProgPoW, how the economically gated ASIC transition plan is designed, and what modifications to ProgPoW were made to create vProgPoW, visit our Medium article.
The original 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. 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.
vProgPoW Miner and Pool Bounties
To celebrate the launch of vProgPoW on VeriBlock, several bounties are available for collection from GPU miners and pool operators. Starting at the vProgPoW fork height of 1512000, the following bounties will become available:
- First five pools to mine 10+ blocks will receive a 20k VBK bounty
- First pool to mine a block with over 100 PoP transactions gets 20k VBK, and the miners who mined the block will split 20k VBK based on their contribution to that mining round
- First pool to mine a block with the hex patterns "C0DE9" ("code9"), "C0011" ("cool1"), and "F000D" ("foood") will each receive a 20k VBK bounty, and the miners who mined the each hex-pattern-matching block will split 20k VBK based on their contribution to that mining round
This section will be updated as bounties are claimed. Note that some lag between a bounty being completed and it being paid out and updated here to reflect the bounty being claimed is to be expected.
Roadmap
- [DONE] Determine new Algorithm (vProgPoW)
- [DONE] Internal End-to-End Testing
- [DONE] Launch Private TestProgPoW Network
- [DONE] Launch Public TestProgPoW Network [6/25/2020]
- NodeCore Update
- Miner Updates from Private Testing Feedback
- [DONE] Network Proves Stability
- [DONE] Make Final Decision on vProgPoW Parameters - see: vProgPoW Specifications Medium Article
- [DONE] Schedule TestNet Hardfork to vProgPoW
- [DONE] Schedule MainNet Hardfork (Exchanges, Pool Admins, Bootstrap Nodes)
- [DONE] vProgPoW TestNet Hardfork Occurs - TestNet block 872000 (Friday September 18th, 2020)
- [DONE] vProgPoW MainNet Hardfork Occurs - MainNet block 1512000 (Monday September 21st, 2020)
How to Mine
See: https://wiki.veriblock.org/index.php/HowTo_run_vProgPoW_GPU_Miner
FAQ
Is the version of vProgPoW Used on TestProgPoW the same as the one used on MainNet?
No, initial testing on the TestProgPoW testnet network was not a finalized version of the vProgPoW PoW algorithm which was eventually selected for use in VeriBlock's mainnet network. The changes vProgPoW made to ProgPoW 0.9.3 can be found on our vProgPoW Medium article.
Old mining software which worked on TestProgPoW will have to be updated to be able to mine on both the MainNet and TestNet blockchains.
Why vProgPoW?
ProgPoW is a standard GPU algorithm with widespread miner and community support, and significant research & vetting.
vProgPoW modifies ProgPoW significantly and offers a gradual, economically gated ASIC transition plan for the VeriBlock network.
Is vProgPoW ASIC Resistant?
No: at low network difficulties, vProgPoW is a GPU-only algorithm. However, at high network difficulties, vProgPoW is specifically designed for ASICs to become viable.
The original ProgPoW was 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 the original ProgPoW algorithm 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.
As a result, vProgPoW was created, which modifies an ASIC-friendly "vulnerability" in ProgPoW 0.9.3. VeriBlock’s vProgPoW will allow the blockchain to get the best of both worlds: GPU-only mining in the early days, and a gradual economics-powered cut-over to a very simple ASIC design that any ASIC engineering firm could build a competitive small-die chip for, and which could be packaged in small entry-level devices for improved mining decentralization and accessibility.
Does VeriBlock still use vBlake?
No, vProgPoW is a separate Proof-of-Work algorithm.
Does vProgPoW Mining 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 vProgPoW (adding block height information to mining.notify) and for VeriBlock (5-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.