The Ethereum network will implement a planned hard fork at the following times: Number of blocks 4.37 million (4,370,000)probably occurring between 12:00 UTC and 13:00 UTC. Monday, October 16, 2017. The Ropsten test network underwent a hard fork on September 19 (UTC) with block number 1.7 million (1,700,000). You can find the countdown timer here: https://fork.codetract.io/.
What do I need to do as a user?
Download the latest version of the Ethereum client.
What if I use a web or mobile Ethereum wallet like MyEtherWallet or Jaxx?
Ethereum websites and mobile applications that allow you to store Ethereum and perform transactions run their own Ethereum client infrastructure to facilitate their services. If you are using a third-party web-based or mobile Ethereum wallet, your wallet provider may need to update it for the hard fork. We recommend that you ask what actions they are taking to update your hard fork and whether they require users to take any other steps.
What is an Ethereum hard fork?
A hard fork is the act of changing the underlying Ethereum protocol and creating new rules to improve the system. Protocol changes become active at specific block numbers. All Ethereum clients must be upgraded. If you don’t upgrade, you’ll be stuck in an incompatible chain following the old rules.
What happens if I don’t participate in a hard fork?
If you are using an Ethereum client that has not been updated for the upcoming hard fork, your client will sync to the pre-fork blockchain when the fork occurs. Without replay protection for the main network, you would be stuck with an incompatible chain following the old rules. Older clients can construct transactions, but cannot see the effects of those transactions.
What are Metropolis, Byzantium, and Constantinople?
Metropolis is a planned Ethereum development phase that includes two hard forks: Byzantium and Constantinople. Byzantium occurs at block number 4.37 million. The release date for Constantinople is currently unknown, but it is expected to be released in 2018.
What changes are included in the Byzantium hard fork?
Contains the following upgrades:
- Added “REVERT” opcode. This allows error handling without consuming all the gas (EIP140)
- Transaction receipts now include a status field to indicate success or failure. EIP658)
- Elliptic curve addition and scalar multiplication in alt_bn128 (EIP196) and pairing check (EIP197), ZK-Snarks and other cryptographic mathemagic™
- Support for large integer exponentiation remainder operations (EIP198), enable RSA signature verification and other cryptographic applications.
- Support for variable length return values (EIP211)
- Addition of the “STATICCALL” opcode allows calls to other contracts that do not change state (EIP214)
- Changes to the difficulty adjustment formula taking uncles into consideration (EIP100)
- Ice Age/difficulty bomb delayed by 1 year, block reward reduced from 5 ether to 3 ether (EIP649)
What if something goes wrong?
If a critical bug is discovered, the following communication channels will be used:
Important notes for Dapp developers
Byzantium will change the way it detects failed transactions, even for contracts created before the Byzantium hard fork was enacted. After forking, eth.getTransactionReceipt(…) returns a status field. The value of the status field is 0 if the transaction fails and 1 if the transaction is successful. For more information, see This post on Ethereum StackExchange.
A huge thank you to the Ethereum development community across all clients and platforms who came together to provide their opinions, thoughts, and contributions for this upgrade.
Disclaimer This is an emerging and evolving highly technical field. If you implement the recommendations in this post and choose to continue participating, be sure to understand how it will affect you. You should understand that risks include, but are not limited to, unexpected bugs. By choosing to implement these recommendations, you assume sole risk of the consequences. This post and recommendation is not a sale of any kind. We also do not create any warranties of any kind, including without limitation those related to the Ethereum Network or Ethereum Clients referenced herein.