The Ethereum network is scheduled to undergo a hard fork as follows. Number of blocks: 4.37 million (4,370,000)This will most likely occur between 12:00 UTC and 13:00 UTC. Monday, October 16, 2017. The Ropsten test network underwent a hard fork on September 19 (UTC) at block number 1.7 million (1,700,000). The countdown timer can be viewed here: https://fork.codetract.io/.
What should I do as a user?
Download the latest version of the Ethereum client.
What if I’m using a web or mobile Ethereum wallet like MyEtherWallet or Jaxx?
Ethereum websites and mobile applications that allow you to store and trade ether run their own Ethereum client infrastructure to facilitate their services. If you use a third-party web-based or mobile Ethereum wallet, you may need to update the hard fork with your wallet provider. It would be a good idea to check what steps are being taken to update for hard forks and whether users are being asked to take other actions.
What is a hard fork of Ethereum?
A hard fork is a change to the underlying Ethereum protocol, creating new rules to improve the system. Protocol changes are activated at specific block numbers. All Ethereum clients must upgrade. Otherwise, you will be stuck in an incompatible chain according to the previous rules.
What happens if I don’t participate in the hard fork?
If you are using an Ethereum client that has not been updated for the upcoming hard fork, your client will be synchronized with the pre-fork blockchain when the fork occurs. You will be stuck with an incompatible chain that follows the old rules without any replay protection on the main network. Existing clients can make 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 is occurring in block number 4.37 million. Constantinople currently doesn’t have a release date, but is expected to launch in 2018.
What changes does the Byzantine hard fork include?
Includes the following upgrades:
- Added ‘REVERT’ opcode to allow error handling without consuming all gas (EIP 140)
- Transaction receipts now include a status field indicating success or failure. EIP 658)
- Elliptic curve addition and scalar multiplication in alt_bn128 (EIP 196) and pairing confirmation (EIP 197), ZK-Snarks and other encrypted mathemagic™.
- Support for large integer modular exponentiation (EIP 198), enabling RSA signature verification and other cryptographic applications.
- Supports variable length return values (EIP 211)
- Added ‘STATICCALL’ opcode to allow calls that do not change state for other contracts (EIP 214)
- Difficulty adjustment formula changed to take uncle into account (EIP 100)
- Ice Age/Difficulty Bomb delayed by 1 year, block reward reduced from 5 to 3 ETH (EIP 649)
What happens if something goes wrong?
If serious bugs are discovered, the following communication channels will be utilized:
Important Notes for Dapp Developers
The method for detecting failed transactions will change with Byzantium, even for contracts created before the Byzantium hard fork was implemented. After fork, eth.getTransactionReceipt(…) returns a status field. The value of the Status field is 0 if the transaction failed or 1 if the transaction succeeded. 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 feedback, thoughts, and contributions to this upgrade.
disclaimer This is an emerging, evolving, highly technological space. If you decide to implement the recommendations in this post and remain engaged, you need to understand how this affects you. You should understand that this involves risks, including but not limited to risks such as unexpected bugs. If you choose to implement these recommendations, you solely assume the risk of the results. This post and recommendations are not a sale of any kind and do not create an endorsement of any kind, including but not limited to anything related to the Ethereum network or Ethereum clients mentioned herein.