diff --git a/EIPS/eip-3554.md b/EIPS/eip-3554.md index 03cfe6b2a08baa..1e0e539ef59aa6 100644 --- a/EIPS/eip-3554.md +++ b/EIPS/eip-3554.md @@ -5,7 +5,7 @@ author: James Hancock (@madeoftin) discussions-to: https://ethereum-magicians.org/t/eip-3554-ice-age-delay-targeting-december-2021/6188 type: Standards Track category: Core -status: Draft +status: Review created: 2021-05-06 --- @@ -13,7 +13,7 @@ created: 2021-05-06 Delays the difficulty bomb to show effect the first week of December 2021. ## Abstract -Starting with `FORK_BLOCK_NUMBER` the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 9,500,000 blocks later than the actual block number. +Starting with `FORK_BLOCK_NUMBER` the client will calculate the difficulty based on a fake block number suggesting to the client that the difficulty bomb is adjusting 9,666,666 blocks later than the actual block number. ## Motivation Targeting for the Shanghai upgrde and/or the Merge to occur before Decemember 2021. Either the bomb can be readjusted at that time, or removed all together. @@ -22,11 +22,11 @@ Targeting for the Shanghai upgrde and/or the Merge to occur before Decemember 20 #### 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: ```py - fake_block_number = max(0, block.number - 9_500_000) if block.number >= FORK_BLOCK_NUMBER else block.number + fake_block_number = max(0, block.number - 9_700_000) if block.number >= FORK_BLOCK_NUMBER else block.number ``` ## Rationale -The following script predicts a 0.2 second delay to blocktime the first week of december and a 1 second delay by the end of the month. This gives reason to address because the effect will be seen, but not so much urgency we don't have space to work around if needed. +The following script predicts a .1 second delay to blocktime the first week of december and a 1 second delay by the end of the month. This gives reason to address because the effect will be seen, but not so much urgency we don't have space to work around if needed. ```python def predict_diff_bomb_effect(current_blknum, current_difficulty, block_adjustment, months): @@ -35,17 +35,17 @@ def predict_diff_bomb_effect(current_blknum, current_difficulty, block_adjustmen Vars used in last prediction: current_blknum = 12382958 current_difficulty = 7393633000000000 - block adjustment = 9500000 - months = 5 + block adjustment = 9700000 + months = 6 ''' - blocks_per_month = (86400 * 30) // 13 + blocks_per_month = (86400 * 30) // 13.3 future_blknum = current_blknum + blocks_per_month * months diff_adjustment = 2 ** ((future_blknum - block_adjustment) // 100000 - 2) diff_adjust_coeff = diff_adjustment / current_difficulty * 2048 return diff_adjust_coeff -diff_adjust_coeff = predict_diff_bomb_effect(12382958,7393633000000000,9500000,5) +diff_adjust_coeff = predict_diff_bomb_effect(12382958,7393633000000000,9700000,6) ``` ## Backwards Compatibility