Grow Open Source Bounties Hackathons Grants Quests Kudos
Back to Grants

Open Source ProgPoW miner full stack integration





2 contributors


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

Activity Feed