From 10a92d9aa2e4a75d4f4e5bcb31d826eab0646914 Mon Sep 17 00:00:00 2001 From: econoar Date: Wed, 20 Nov 2019 10:44:51 -0800 Subject: [PATCH 1/7] Create eip-2019.md --- EIPS/eip-2019.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 EIPS/eip-2019.md diff --git a/EIPS/eip-2019.md b/EIPS/eip-2019.md new file mode 100644 index 00000000000000..e436d83eab2160 --- /dev/null +++ b/EIPS/eip-2019.md @@ -0,0 +1,39 @@ +--- +eip: 2019 +title: Difficulty Bomb Delay +author: Eric Conner (@econoar) +type: Standards Track +category: Core +status: Draft +created: 2019-11-20 +--- + +## Simple Summary +The average block times are increasing due to the difficulty bomb (also known as the "_ice age_") and slowly accelerating. This EIP proposes to delay the difficulty bomb for another 4,000,000 blocks (~611 days). + +## Abstract +Starting with `???_FORK_BLKNUM` the client will calculate the difficulty based on a fake block number suggesting the client that the difficulty bomb is adjusting around 9 million blocks later than previously specified with the Homestead fork. + +## Motivation +The difficulty bomb has been activated and block times are on the rise from 13.1s to 14.4s. This will start to accelerate soon and we will see 20s block times in a month and 30s block times in ~2-3 months. This will slowly start to make the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. + +## Specification +#### Relax Difficulty with Fake Block Number +For the purposes of `calc_difficulty`, simply replace the use of `block.number`, as used in the exponential ice age component, with the formula: + + fake_block_number = max(0, block.number - 9_000_000) if block.number >= ???_FORK_BLKNUM else block.number + +## Rationale +This will delay the ice age by 52 million seconds (approximately 611 days), so the chain would be back at 20 second block times around July 2021. It's important to note this pushes the ice age 4,000,000 blocks from ~block 8,800,000 NOT from when this EIP is activated in a fork. + +## Backwards Compatibility +This EIP is not forward compatible and introduces backwards incompatibilities in the difficulty calculation. Therefore, it should be included in a scheduled hardfork at a certain block number. It's suggested to include this EIP shortly after the Istanbul fork. + +## Test Cases +Test cases shall be created once the specification is to be accepted by the developers or implemented by the clients. + +## Implementation +The implementation in it's logic does not differ from [EIP-649](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-649.md) or [EIP-1234](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1234.md); an implementation for Parity-Ethereum is available in [parity-ethereum#9187](https://github.com/paritytech/parity-ethereum/pull/9187). + +## Copyright +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). From 8046f2609e64be1f675ef2baee7ddf5ea735996f Mon Sep 17 00:00:00 2001 From: econoar Date: Wed, 20 Nov 2019 10:46:34 -0800 Subject: [PATCH 2/7] update --- EIPS/eip-2019.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-2019.md b/EIPS/eip-2019.md index e436d83eab2160..2a79e30813a740 100644 --- a/EIPS/eip-2019.md +++ b/EIPS/eip-2019.md @@ -15,7 +15,7 @@ The average block times are increasing due to the difficulty bomb (also known as Starting with `???_FORK_BLKNUM` the client will calculate the difficulty based on a fake block number suggesting the client that the difficulty bomb is adjusting around 9 million blocks later than previously specified with the Homestead fork. ## Motivation -The difficulty bomb has been activated and block times are on the rise from 13.1s to 14.4s. This will start to accelerate soon and we will see 20s block times in a month and 30s block times in ~2-3 months. This will slowly start to make the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. +The difficulty bomb has been activated and block times are on the rise from 13.1s to 14.4s. This will start to accelerate soon and we will see 20s block times in December 2019 and 30s block times around February 2020. This will slowly start to make the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. ## Specification #### Relax Difficulty with Fake Block Number From 2163016e93a519f58c0070d0089903d5e6e27d69 Mon Sep 17 00:00:00 2001 From: econoar Date: Wed, 20 Nov 2019 13:42:52 -0800 Subject: [PATCH 3/7] update EIP number to 2384 --- EIPS/{eip-2019.md => eip-2384.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename EIPS/{eip-2019.md => eip-2384.md} (99%) diff --git a/EIPS/eip-2019.md b/EIPS/eip-2384.md similarity index 99% rename from EIPS/eip-2019.md rename to EIPS/eip-2384.md index 2a79e30813a740..c248c06be93e9f 100644 --- a/EIPS/eip-2019.md +++ b/EIPS/eip-2384.md @@ -1,5 +1,5 @@ --- -eip: 2019 +eip: 2384 title: Difficulty Bomb Delay author: Eric Conner (@econoar) type: Standards Track From a97193d811d4d4453b853a94d118aa04786763f8 Mon Sep 17 00:00:00 2001 From: econoar Date: Wed, 20 Nov 2019 16:41:55 -0800 Subject: [PATCH 4/7] update eip-2384 Added better title, updated motivation with exact block numbers and date, fixed links and added a discussion link. --- EIPS/eip-2384.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-2384.md b/EIPS/eip-2384.md index c248c06be93e9f..3caed0176fba24 100644 --- a/EIPS/eip-2384.md +++ b/EIPS/eip-2384.md @@ -1,7 +1,8 @@ --- eip: 2384 -title: Difficulty Bomb Delay +title: Istanbul/Berlin Difficulty Bomb Delay author: Eric Conner (@econoar) +discussions-to: https://gitter.im/ethereum/AllCoreDevs?at=5dd4ce8050010612b2eeb9d6 type: Standards Track category: Core status: Draft @@ -15,7 +16,7 @@ The average block times are increasing due to the difficulty bomb (also known as Starting with `???_FORK_BLKNUM` the client will calculate the difficulty based on a fake block number suggesting the client that the difficulty bomb is adjusting around 9 million blocks later than previously specified with the Homestead fork. ## Motivation -The difficulty bomb has been activated and block times are on the rise from 13.1s to 14.4s. This will start to accelerate soon and we will see 20s block times in December 2019 and 30s block times around February 2020. This will slowly start to make the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. +The difficulty bomb started to become noticable again on October 5th 2019 at block 8,600,000. Block times has been around 13.1s on average and now as of block 8,900,000 are around 14.3s. This will start to accelerate exponentially every 100,000 blocks. Estimating the added impact from the difficulty bomb on block times shows that we will see 20s block times near the end of December 2019 and 30s+ block times starting February 2020. This will start making the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. ## Specification #### Relax Difficulty with Fake Block Number @@ -33,7 +34,7 @@ This EIP is not forward compatible and introduces backwards incompatibilities in Test cases shall be created once the specification is to be accepted by the developers or implemented by the clients. ## Implementation -The implementation in it's logic does not differ from [EIP-649](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-649.md) or [EIP-1234](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1234.md); an implementation for Parity-Ethereum is available in [parity-ethereum#9187](https://github.com/paritytech/parity-ethereum/pull/9187). +The implementation in it's logic does not differ from [EIP-649](https://eips.ethereum.org/EIPS/eip-649) or [EIP-1234](https://eips.ethereum.org/EIPS/eip-1234); an implementation for Parity-Ethereum is available in [parity-ethereum#9187](https://github.com/paritytech/parity-ethereum/pull/9187). ## Copyright Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). From f51376ab63c8a710a248e70bdd8abf6a750bc028 Mon Sep 17 00:00:00 2001 From: econoar Date: Thu, 21 Nov 2019 09:45:28 -0800 Subject: [PATCH 5/7] update eip-2384.md clarify language around block counts away from different forks --- EIPS/eip-2384.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-2384.md b/EIPS/eip-2384.md index 3caed0176fba24..7a4bc07440f4ae 100644 --- a/EIPS/eip-2384.md +++ b/EIPS/eip-2384.md @@ -13,7 +13,7 @@ created: 2019-11-20 The average block times are increasing due to the difficulty bomb (also known as the "_ice age_") and slowly accelerating. This EIP proposes to delay the difficulty bomb for another 4,000,000 blocks (~611 days). ## Abstract -Starting with `???_FORK_BLKNUM` the client will calculate the difficulty based on a fake block number suggesting the client that the difficulty bomb is adjusting around 9 million blocks later than previously specified with the Homestead fork. +Starting with `???_FORK_BLKNUM` the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 9 million blocks later than the Homestead fork, which is also 7 million blocks later than the Byzantium fork and 4 million blocks later than the Constantinople fork. ## Motivation The difficulty bomb started to become noticable again on October 5th 2019 at block 8,600,000. Block times has been around 13.1s on average and now as of block 8,900,000 are around 14.3s. This will start to accelerate exponentially every 100,000 blocks. Estimating the added impact from the difficulty bomb on block times shows that we will see 20s block times near the end of December 2019 and 30s+ block times starting February 2020. This will start making the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. From fbe05c82b824a18089fffacf73d8064f40d9ebdd Mon Sep 17 00:00:00 2001 From: econoar Date: Fri, 22 Nov 2019 08:23:21 -0800 Subject: [PATCH 6/7] update eip-2384.md spelling mistake and eth-mags discussion link --- EIPS/eip-2384.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip-2384.md b/EIPS/eip-2384.md index 7a4bc07440f4ae..8d9296c85dd0fa 100644 --- a/EIPS/eip-2384.md +++ b/EIPS/eip-2384.md @@ -2,7 +2,7 @@ eip: 2384 title: Istanbul/Berlin Difficulty Bomb Delay author: Eric Conner (@econoar) -discussions-to: https://gitter.im/ethereum/AllCoreDevs?at=5dd4ce8050010612b2eeb9d6 +discussions-to: https://ethereum-magicians.org/t/eip-2384-difficulty-bomb-delay type: Standards Track category: Core status: Draft @@ -16,7 +16,7 @@ The average block times are increasing due to the difficulty bomb (also known as Starting with `???_FORK_BLKNUM` the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 9 million blocks later than the Homestead fork, which is also 7 million blocks later than the Byzantium fork and 4 million blocks later than the Constantinople fork. ## Motivation -The difficulty bomb started to become noticable again on October 5th 2019 at block 8,600,000. Block times has been around 13.1s on average and now as of block 8,900,000 are around 14.3s. This will start to accelerate exponentially every 100,000 blocks. Estimating the added impact from the difficulty bomb on block times shows that we will see 20s block times near the end of December 2019 and 30s+ block times starting February 2020. This will start making the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. +The difficulty bomb started to become noticeable again on October 5th 2019 at block 8,600,000. Block times has been around 13.1s on average and now as of block 8,900,000 are around 14.3s. This will start to accelerate exponentially every 100,000 blocks. Estimating the added impact from the difficulty bomb on block times shows that we will see 20s block times near the end of December 2019 and 30s+ block times starting February 2020. This will start making the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. ## Specification #### Relax Difficulty with Fake Block Number From 02505ba1b3a576ccd19ff45126a42fa4ee10e306 Mon Sep 17 00:00:00 2001 From: econoar Date: Fri, 22 Nov 2019 08:27:31 -0800 Subject: [PATCH 7/7] update eip-2384.md grammar --- EIPS/eip-2384.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-2384.md b/EIPS/eip-2384.md index 8d9296c85dd0fa..8461b5cee0659a 100644 --- a/EIPS/eip-2384.md +++ b/EIPS/eip-2384.md @@ -16,7 +16,7 @@ The average block times are increasing due to the difficulty bomb (also known as Starting with `???_FORK_BLKNUM` the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 9 million blocks later than the Homestead fork, which is also 7 million blocks later than the Byzantium fork and 4 million blocks later than the Constantinople fork. ## Motivation -The difficulty bomb started to become noticeable again on October 5th 2019 at block 8,600,000. Block times has been around 13.1s on average and now as of block 8,900,000 are around 14.3s. This will start to accelerate exponentially every 100,000 blocks. Estimating the added impact from the difficulty bomb on block times shows that we will see 20s block times near the end of December 2019 and 30s+ block times starting February 2020. This will start making the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. +The difficulty bomb started to become noticeable again on October 5th 2019 at block 8,600,000. Block times have been around 13.1s on average and now as of block 8,900,000 are around 14.3s. This will start to accelerate exponentially every 100,000 blocks. Estimating the added impact from the difficulty bomb on block times shows that we will see 20s block times near the end of December 2019 and 30s+ block times starting February 2020. This will start making the chain bloated and more costly to use. It's best to delay the difficulty bomb again to around the time of expected launch of the Eth2 finality gadget. ## Specification #### Relax Difficulty with Fake Block Number