ProgPoW has been accepted!
Core Dev Call №52, It has been decided.
After long discussions over the past six months, the core developers have decided to go through with the decision to implement the proposal ProgPoW into Ethereum!
ProgPoW was first introduced as an EIP (Ethereum Improvement Proposal) by the collective IfDefElse in May 2018 (https://eips.ethereum.org/EIPS/eip-1057). We, the open source mining community around ethminer, were critical of the EIP at first. We then thoroughly analyzed the algorithm and created a miner that can seamlessly switch between Ethash (the old Proof-of-Work algorithm) and ProgPoW. It can be found at https://github.com/AndreaLanfranchi/ethminer
Since then it has gone through two minor revisions increasing the amount
ProgPoW also needs the block number included in every header which inspired Andrea to create a new Stratum proposal. Stratum is the protocol used by most mining pools to notify miners of new blocks. Stratum however has never been standardized by the Ethereum Foundation so there are several competing standards. We created, in collaboration with Peter Pratscher from Bitfly, a new EIP (1571). https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1571.md called Stratum 2.0.
Stratum 2.0 has several advantages over the existing protocols. It includes the current block number which is crucial for ProgPoW. It also can include the mining algorithm in a message which helps with the switch between Ethash and ProgPoW. Stratum 2.0 uses JSON-RPC- style messages for concise but still human readable, and debuggable, formatting. The messages are written such that they can be send in a single TCP/IP packet reducing the load of the whole network. Previously a mining.notify packet weight roughly 240 bytes, now we can reduce this to roughly 190 bytes. This helps mining operators to reduce their bandwith limitations for running a mining pool as well as improve latencies in the network.
Assuming the dispatch of 1 work package per block to an audience of 50k connected TCP sockets means the transmission of roughly 1.88TB of data a month. With Stratum 2.0 we can reduce this to roughly 1.41TB per month.
In summary we can say that we took, with both ProgPoW and Stratum 2.0, the gathered experiences running Proof-of-Work systems to create new protocols that are more suitable for their tasks.