Grow Open Source

Open Source ProgPoW miner full stack integration

MONTHLY RECURRING

97 DAI

of 38,400 DAI goal

TOTAL FUNDED

6,807 DAI

MONTHLY RECURRING FUNDING: 97 DAI

Project in one sentence Extend ethminer’s capabilities to implement ProgPoW by the means of EIP-1057 (https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1057.md) Summary of Proposal Possible adoption of EIP-1057 require ethminer to evolve and support ProgPoW hashing algorithm embracing the same principles which have lead development of ethereum till now : openness, security, performance. Proposal Ethminer is, at present, the most advanced, best supported, and actively maintained ethash miner in the open-source scope. Adoption of EIP-1057 by Ethereum’s blockchain, if not properly supported by ethminer, would create a wound in miner’s audience which could only rely on shady and closed-sourced mining software to take advantage of their GPU and ProgPoW. This would create a secondary, equally undesirable, dominance position by closed-source developers: the ASIC resistance EIP-1057 means to reinforce would end up in an impairment of the clearness which stands at the basis of the whole Ethereum project. To accomplish this goal the ethminer’s dev team means to review the application stack introducing ProgPoW as additional algorithm to be activated under any of these circumstances. Cold algo selection First step in ProgPoW implementation is to embed the algo within the runnable GPU kernels. Due to this the mining software could be activated to grind either classic Ethash or ProgPoW. This should be considered the first staging phase only to test and tune GPUs at best Warm algo switching Final step is to design ethminer in a way capable to switch algo on the fly. This implies a signal must be carried at mining protocol level (namely stratum) so the miner can choose which algo to enforce in the mining of next block of data. This phase involves actors which are beyond ethminer’s scope: pools, for instance, should embrace such modifications in protocol. At present, however, there is no standard stratum protocol for ethereum mining: there are mainly three different flavours carried out without coordination by any pool. Our proposal is to adopt and extend actual EthereumStratum/1.0.0. Implementation (https://github.com/nicehash/Specifications/blob/master/EthereumStratum_NiceHash_v1.0.0.txt) which can offer a robust documentation skeleton and already solves many of the verbosity issues which affect other stratum flavours. This extension (which will be called EthereumStratum/2.0.0) should endorse strict JsonRpc 2.0 specs (https://www.jsonrpc.org/specification) and have been specified at this document https://github.com/AndreaLanfranchi/EthereumStratum-2.0.0 Funding of this project will guarantee the existence of a free and open-source miner for Ethereum. Timeline Estimate and Milestones ProgPOW review Preparation of a report with review of some aspects of ProgPOW for which concerns were raised. Time: 2-4 weeks. Owners: Marius van der Wijden, Andrea Lanfranchi Ethash library with ProgPOW Extend the ethash library https://github.com/chfast/ethash with ProgPOW for verification and CPU mining. This library is used by ethminer and Aleth. The ProgPOW fork: https://github.com/ifdefelse/proghash. Time: 4-8 weeks. Owners: Paweł Bylica EIP for extended stratum protocol The stratum protocols are used to deliver work from mining pools to workers. We will research available protocols and extend one of them to be capable of sending information about algorithm change. (https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1571.md) Time: 1-2 weeks. Owners: Andrea Lanfranchi Implementation of new stratum protocol in ethminer Implement the client side of the stratum protocol proposed in 3 in ethminer. Time: 2-4 weeks. Owners: Andrea Lanfranchi Providing test cases for other implementations In order for other projects to validate their implementations, we provide test cases. This helps all other core projects to test their code. Time: 1-2 weeks. Owners: Marius van der Wijden Ethminer with ProgPoW The ProgPoW implementation presented in https://github.com/ifdefelse/ProgPOW will be integrated to ethminer. The ethminer will be able to run both Ethash and ProgPOW in benchmark (-M) modes. The availability of a testnet will be useful to provide real test cases scenarios. Time: 5 weeks. Owners: Andrea Lanfranchi

Active Subscriptions

22 Feb
5.0000 DAI / 30 days, 12 times

5.0000 DAI

25 Feb
50.0000 DAI / 30 days, 12 times

50.0000 DAI


Contributions

11 Mar
3,300.0000 DAI

3,300.0000 DAI

10 Apr
3,300.0000 DAI

3,300.0000 DAI

23 Apr
5.0000 DAI

5.0000 DAI

22 Feb
5.0000 DAI

5.0000 DAI

24 Mar
5.0000 DAI

5.0000 DAI

28 Mar
42.0000 DAI

42.0000 DAI

03 May
50.0000 DAI

50.0000 DAI

26 Feb
50.0000 DAI

50.0000 DAI

03 Apr
50.0000 DAI

50.0000 DAI


Inactive Subscriptions

11 Mar
3,300.0000 DAI / 30 days, 2 times

3,300.0000 DAI

MILESTONES

  • Due: Nov. 29, 2018 / Completed: Oct. 29, 2018

    EIP for extended stratum protocol

    The stratum protocols are used to deliver work from mining pools to workers. We will research available protocols and extend one of them to be capable of sending information about algorithm change.

  • Due: Jan. 31, 2019 / Completed: Jan. 15, 2019

    Implementation of new stratum protocol in ethminer

    Implement the client side of the stratum protocol proposed in 3 in ethminer.

  • Due: Jan. 31, 2019 / Completed: Jan. 24, 2019

    Ethash library with ProgPOW

    Extend the ethash library https://github.com/chfast/ethash with ProgPOW for verification and CPU mining. This library is used by ethminer and Aleth.

  • Due: Feb. 28, 2019 / Completed: Feb. 10, 2019

    Ethminer with ProgPoW

    The ProgPoW implementation presented in https://github.com/ifdefelse/ProgPOW will be integrated to ethminer. Ethminer will be able to run both Ethash and ProgPOW in benchmark (-M) mode or mining mode.

  • Due: April 30, 2019

    Providing test cases and verification vectors for other implementations

    In order for other projects to validate their implementations, we'll provide test cases and test vectors. This helps all other core projects to test their code.

  • Due: April 30, 2019

    ProgPOW review

    Preparation of a report with review of some aspects of ProgPOW for which concerns were raised. In particular these topics need to be addressed: 1. Cryptographic strength of the algo 2. Whether or not the algo favors any architecture and or vendor 3. Implications of reduced hashrate over ethereum chain (difficulty bomb, block timings etc) 4. Implementations of trivial verifications

UPDATES

Waiting for Ethereum Cat Herders decisions and for funds to continue development
Despite the clearness of signals collected from the community which eagerly waits for ProgPoW implementation, ethereum's Core Devs and Cat Herders are still unable to reach a final consensus and mean to delegate an extensive audit on the matter to a third party. Unfortunately also this task seem to be quite low priority on Governance agenda and/or they struggle to find the proper auditor. In this unclear and uncertain situation, despite the good intentions of support expressed by many individuals, this project has not collected the necessary funds to continue the work. As a consequence the whole code implemented on ethminer so far have been moved to private: this has been a suffered decision as we firmly believe in the principles of open source. Unfortunately we can't provide a "free" advantage to developers who are working behind the scenes to implement progpow on their "dev-fee" driven miners. If things should change in near future and this project will get proper fundings the whole code will be made availble to the public once again. Andrea Lanfranchi
2019 March 13 - Gitcoin Grants Round 2 Results are Live Click here to see who the winners are!.