Homestead hard fork
Mainnet 2016-03-14
The first production upgrade after launch. It refined transaction signature rules and gas calculation.
What changed
- Users
- There was almost no change that could be felt directly in wallets. However, with this upgrade Ethereum left Frontier, which had been a trial operation stage, and settled in as a production network. The range of values allowed in transaction signatures was narrowed by half, removing the possibility of the same transaction being expressed with two different signatures. The difficulty adjustment formula was also reworked so that the interval between blocks would not grow too wide. This laid the groundwork for transactions to be processed more evenly.
- Wallet & app developers
- The biggest change was the addition of the DELEGATECALL instruction. It loads another contract's code while continuing to use the caller's own storage and caller information, which opened the way for many contracts to share a common library contract. The proxy and upgradeable contract patterns that came later all started here. The cost of deploying a contract rose from 21,000 gas to 53,000. If gas ran out during deployment, the transaction itself now failed instead of leaving behind an empty contract. Because the range of signature values was narrowed, signature libraries also had to be adjusted accordingly.
- Node operators
- Since it was a hard fork, clients had to be upgraded to the new version to stay on the network. Along with that, forward compatibility was added to the node-to-node communication protocol (devp2p). During the handshake stage, unknown fields are now ignored rather than causing the connection to be dropped, so even if the protocol changes later, old-version nodes and new nodes can run together. The groundwork for upgrading the network without service interruption was laid at this time.