Ethereum Protocol Update 1 | Ethereum Foundation Blog

The first Frontier patch is here! This is a big patch.

Before proceeding, please note that if your keys date back to Go 1.0 rc or C++ 0.9.36, you must regenerate all keys now. Some releases of pre-alpha and alpha clients are safe, but this varies by codebase and version. All keys generated before these clients are insecure and should be assumed to have been compromised. This does not affect presale wallets.


Thawing pull request integrated for Go client Master branch has been updated. If you’re still running branch release 1.0.0, switch to master.

about, C++ Users can also switch to master after the merge and the binaries will be available soon. If you don’t want to update eth, but want to help unpack your network, you can also restart eth using the additional parameter –gas-floor 3141592.

I will also try to repost a brief explanation of how the gas limit targeting process works and why I cannot guarantee the time it will take to reach the 21K limit required to process one basic transaction per block. thought.

Each miner runs a copy of geth or eth. For the Frontier Genesis release, both were set at a goal of 5,000 and never deviated from that number. With this update, both clients will be updated to target a gas limit of 3M per block instead.

But you can’t just switch to 3M gas limits because the protocol forces you to ramp up slowly at a constant rate. That rate is equal to the previous block limit / 1024. Now, assuming all miners update their clients and no one messes with the configuration, and assuming a steady block time including propagation he is 15 seconds, within 28 hours he will reach 3M will be reached. But here’s the problem. Not all miners update in time, some may forget, and some may never update.

So from now on, if the winning block was mined by a miner who updated, the block limit will be adjusted upwards at the intended rate, but if it was mined by a “lazy” miner who did not update, it will be adjusted downward. Adjusted (as lazy miners are still aiming for 5,000).

Therefore, it takes a minimum of 6 hours to reach the gas limit of 21K per block (1 trx per block) and a minimum of 28 hours to reach 3M. In reality, it can take much longer than this.

This is where the free market comes into play. Technically, miners could have conspired a few days ago to change the client’s code and cause the network to behave quite differently than we expected. We are simply acting as advisors to the community.

The Genesis block we’ve seen adopted by the community is hardcoded in the client, and you no longer need to specify the –genesis parameter to start eth or geth. However, if you want to start a private chain on a different Genesis, for example, you can also specify a manually created Genesis block.

Bug fixes

On the Go client side, a series of bug fixes and improvements have been merged into 1.0.1, including preparation for the Go 1.5 release.

  • Fixed chain manager crash #1568
  • Modify log number #1545
  • go 1.5 cipher fixes #1536
  • Fixed eth_call and eth_estimateGas #1534
  • console resend Method modification #1461

The C++ client has full external auditing of key stores and encryption. All actions recommended by our expert reviewers have been implemented. Numerous optimizations and security improvements have been added to the client.

  • A unique C++ client feature is Secure Secrets. All heap memory used to store secrets is securely overwritten immediately upon exit.
  • C++ clients now rely on boost::random_device for cryptographically secure random number generation.
  • Several crashes and build fixes in AlethZero
  • Alethzero enhancements, especially regarding account information
  • The CLI tool ‘ethkey’ can now be used in conjunction with AlethZero to inspect and sign unsigned transactions. This allows you to use a fully air-gapped cold wallet device.

Difficulty adjustment system

Many are wondering how to implement the switch from PoW to PoS in time for Serenity. This is handled by a newly introduced difficulty adjustment scheme that elegantly guarantees a hard fork point within the next 16 months.

It works like this: Starting at block 200,000 (approximately 17 days from now), the difficulty increases exponentially. Becomes noticeable in about a year. At that point (just around the release of the Serenity milestone), you’ll see the difficulty increase significantly and block resolution times begin to increase.

So, after a year, the network will continue to be useful for about 3-4 months, but will eventually reach some kind of “ice age.” In other words, the difficulty will be so high that no one will be able to find the block. This will likely allow you to deploy PoS in the following ways: casperif it proves itself.

Related Article


Leave a Comment