15

The question Please confirm what the hard forks of Ethereum were and when they took place was asked on Reddit by u/Tykerr.

21

Ethereum Mainnet blocks #0 (genesis block) and #1 (first mined block):

> new Date(eth.getBlock(0).timestamp * 1000).toUTCString()
"Thu, 01 Jan 1970 00:00:00 UTC"
> new Date(eth.getBlock(1).timestamp * 1000).toUTCString()
"Thu, 30 Jul 2015 15:26:28 UTC"


0.1 #200,000 Ice Age

Source: u/accape's statement "There is also the very first HF shortly after genesis which introduced the ice age (which went into effect at block 200,000)."

And from Ethereum Protocol Update 1, dated Aug 4 2015, "starting from block 200,000 (very roughly 17 days from now), the difficulty will undergo an exponential increase which will only become noticeable in about a year".

> new Date(eth.getBlock(200000).timestamp * 1000).toUTCString()
"Mon, 07 Sep 2015 21:33:09 UTC"



1. #1,150,000 Homestead

Source What was the first block mined with Homestead?

> new Date(eth.getBlock(1150000).timestamp * 1000).toUTCString()
"Mon, 14 Mar 2016 18:49:53 UTC"

Note that https://etherchain.org/block/1150000 reports 2016-03-14 19:49:53 and https://etherscan.io/block/1150000 reports Mar-14-2016 06:49:53 PM +UTC

See also EIP 606: Hardfork Meta: Homestead



2. #1,920,000 DAO

Source Give a summary of the fork state changes in block 1920000.

> new Date(eth.getBlock(1920000).timestamp * 1000).toUTCString()
"Wed, 20 Jul 2016 13:20:40 UTC"

Note that this hard fork produced the Ethereum Classic chain which is the original un-forked chain while the forked chain is the main Ethereum chain. If you owned ethers (ETH) prior to this fork, you will own the same number of Classic ethers (ETC) as well as regular ethers (ETH).

See also EIP 779: Hardfork Meta: DAO Fork



3. #2,463,000 Tangerine Whistle

Source FAQ: Upcoming Ethereum Hard Fork, dated Oct 18 2016.

> new Date(eth.getBlock(2463000).timestamp * 1000).toUTCString()
"Tue, 18 Oct 2016 13:19:31 UTC"

The main changes to the protocol were:

See also EIP 608: Hardfork Meta: Tangerine Whistle

The software versions were:

  • Ethereum Wallet/Mist 0.8.6
  • geth 1.4.18
  • Parity 1.3.8
  • EthereumJ 1.3.6



4. #2,675,000 Spurious Dragon

Source Hard Fork No. 4: Spurious Dragon, dated Nov 18 2016.

> new Date(eth.getBlock(2675000).timestamp * 1000).toUTCString()
"Tue, 22 Nov 2016 16:15:44 UTC"

The main changes to the protocol were:

See also EIP 607: Hardfork Meta: Spurious Dragon

The software versions were:

  • Ethereum Wallet/Mist 0.8.7
  • geth 1.5.2
  • Parity 1.4.4



5. #4,370,000 Byzantium

Source Byzantium HF Announcement, dated Oct 12 2017.

> new Date(eth.getBlock(4370000).timestamp * 1000).toUTCString()
"Mon, 16 Oct 2017 05:22:11 UTC"

The main changes to the protocol were:

See also EIP 609: Hardfork Meta: Byzantium

The software versions were:

  • Ethereum Wallet/Mist 0.9.1
  • geth 1.7.2
  • Parity 1.7.6 (to be released)
  • Ethereum Harmony 2.1.56



6. #7,280,000 Constantinople/St. Petersburg

Source:

> new Date(eth.getBlock(7080000).timestamp * 1000).toUTCString()
"Thu, 17 Jan 2019 05:57:13 UTC"

The main changes to the protocol are:

The software versions are:

  • geth 1.8.23
  • Parity v2.2.10-stable
  • Harmony v2.3 Build 74
  • Pantheon v0.9.1
  • EthereumJS v2.6.0
  • Ethereum Wallet/Mist v0.11.1



7. #9,069,000 Istanbul

Source Ethereum Istanbul Upgrade Announcement, dated Nov 20 2019

> new Date(eth.getBlock(9069000).timestamp * 1000).toUTCString()
"Sun, 08 Dec 2019 00:25:09 UTC"

The main changes to the protocol as listed in EIP 1679: Hardfork Meta: Istanbul were:

  • EIP-152: Add Blake2 compression function F precompile
  • EIP-1108: Reduce alt_bn128 precompile gas costs
  • EIP-1344: Add ChainID opcode
  • EIP-1884: Repricing for trie-size-dependent opcodes
  • EIP-2028: Calldata gas cost reduction
  • EIP-2200: Rebalance net-metered SSTORE gas cost with consideration of SLOAD gas cost change

The software versions are:

  • geth v1.9.9
  • Parity v2.5.11-stable
  • Besu v1.3.6
  • Nethermind v1.2.3
  • ethereumJS v4.0.2
  • Trinity v0.1.0-alpha.31
  • Aleth v1.7.1
  • 1
    This is extremely useful. Thanks. One suggestion. Pull out the blockNumbers to make them a bit more obvious. I found this post because I was trying to answer the question "During which blocks were the DDOS attack," because I had to resync my chain, and I wanted to know when the sync would slow down. I looked at this post for a while, thinking it would be perfect if it included block numbers before I noticed the block numbers almost hidden in the code. My suggestion is to expose the block numbers more obviously perhaps even in the title of the hard fork. Thanks. – Thomas Jay Rush Apr 8 '17 at 12:51
  • Added the block numbers as you suggested. Re syncing, see ethereum.stackexchange.com/questions/9883/… . – The Officious BokkyPooBah Apr 9 '17 at 11:39
  • 1
    Hi Bokky. Maybe you'll add Instanbul to this. – Thomas Jay Rush Nov 21 at 21:29
  • @ThomasJayRush Done! Thx for the reminder – The Officious BokkyPooBah Dec 8 at 13:35
  • 1
    And now Muir Glacier I guess too. – Thomas Jay Rush Dec 9 at 16:22
3

Actually all Ethereum forks are modeled in EthOn (http://ethon.consensys.net). I attached an illustration, below. The Ethereum fork history, so far

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.