Metropolis Difficulty Bomb Delay
5chdn opened this issue · 2 comments
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:
- All Core Devs Meeting #09
- All Core Devs Meeting #12
- All Core Devs Meeting #13 (in context of #186)
- All Core Devs Meeting #14 (in context of #186)
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.