ethereum/EIPs

Metropolis Difficulty Bomb Delay

5chdn opened this issue · 2 comments

5chdn commented

Update: For implementation see #669


Preamble

EIP: #649
Title: Metropolis Difficulty Bomb Delay
Authors: Afri Schoedon (Champion), Vitalik Buterin (Specification)
Type: Standard Track
Category: Core
Status: Draft
Created: 2017-06-21
Replaces: #186

*Note, I'm just writing down this EIP, I'm not the author. It has been discussed in several all-core-dev meetings. However, it clearly needs an EIP if this should be included in Metropolis. Previously discussed here:

Simple Summary, Abstract, and Motivation

The average block time is 17.49 seconds and slowly increasing due to the difficulty bomb. That makes users sad. This EIP is suggesting to delay the bomb significantly, to reduce average block times below 15 seconds, and to allow more time for Serenity development.

Specification, Rationale, Compatibility, Test Cases, Implementation

To be specified asap: "Idea was that we add special rules to the difficulty calculation to effectively pause the difficulty between different blocks." (Peter)

Copyright

Copyright and related rights waived via CC0.

Could you open this as a PR instead of an issue?

I recommend, for the purposes of calc_difficulty, we simply replace the use of block.number, as used in the exponential ice age component, with the formula:

fake_block_number = block.number - 3000000 if block.number >= METROPOLIS_FORK_BLKNUM else block.number

This will delay the ice age by 42 million seconds ~= 1.4 years, so we'd be back at 30 second block times at the end of 2018.