The first Frontier patch has been released. This is a really great patch!
Before going any further, please note that if your key dates are before Go 1.0 rc or C++ 0.9.36, you will need to regenerate all keys now. Some releases of pre-alpha and alpha clients are safe, but this depends on the codebase and version. Any keys generated prior to these clients should be assumed to be insecure and compromised. This does not affect pre-sale wallets.
thaw
thaw pull request Merged for: Go to Client Master branch has been updated. If you’re still running branch release 1.0.0, switch to master.
As for C++ Users can also switch to master after the merge, and binaries will be available soon. If you want to help thaw your network without updating eth, you can also restart eth using the additional parameter –gas-floor 3141592.
I thought I would also repost a brief explanation of how the gas limit targeting process works and why we cannot guarantee the time to reach the 21K limit required to process one basic transaction per block.
Each miner runs a copy of geth or eth. For the Frontier Genesis release, both were set to target 5k and didn’t deviate from that figure. Now, with this update, both clients are updated to target the 3M gas limit per block.
However, you cannot switch to the 3M gas limit because the protocol forces you to slowly ramp up at a certain rate. That rate is the same as the previous block limit / 1024. Now, assuming all miners update their clients and none of them change their settings, we will reach 3M in less than 28 hours, assuming a steady 15 second block time including propagation. But the important thing is that not all miners update on time, some may forget and some may never update!
So in the future, if an updated miner mines a winning block, the block limit will be adjusted upward by the intended percentage, but if a non-updated ‘lazy’ miner mines it, it will be adjusted back down again (since the lazy miner is still aiming for 5k) .
For this reason, it takes at least 6 hours to reach the 21K gas limit per block (1 trx per block), and at least 28 hours to reach 3M. In reality, it will likely take much longer than that.
This is where the free market comes into play. Technically, miners could have conspired a few days ago to modify the client code and make the network behave differently than we had in mind. We simply act as advisors to the community.
The community-adopted Genesis block is now hardcoded into the client, and you no longer need to specify the –genesis parameter to start eth or geth. This means that you can still specify a hand-crafted genesis block if, for example, you want to start your private chain using a different genesis.
bug fix
On the Go client side, a series of bug fixes and improvements have been merged into 1.0.1, including in preparation for the Go 1.5 release.
- Fixed a crash in chain manager. #1568
- Edit log number #1545
- Encryption fixes for Go 1.5 #1536
- Modify eth_call and eth_estimateGas #1534
- console resend Fix method #1461
A full external audit of key storage and encryption has been performed on the C++ client. All actions recommended by expert reviewers were taken. Numerous optimization and security improvements have been added to the client.
- A unique C++ client feature is a secret. Any heap memory used to store secrets is safely overwritten immediately after completion.
- The C++ client now provides cryptographically secure random number generation using Boost::random_device.
- Several crash and build fixes for AlethZero
- Improvements to Alethzero, especially with regard to account information
- You can now use the CLI tool ‘ethkey’ with AlethZero to check and sign unsigned transactions. This allows you to have a completely air-gapped cold wallet device.
Difficulty adjustment method
Many of you have been wondering how to implement the transition from PoW to PoS for Serenity. This will be handled by a newly introduced difficulty scaling scheme that will gracefully ensure no hard fork points over the next 16 months.
It works like this: starting at block 200,000 (approximately 17 days from now) the difficulty increases exponentially. It becomes noticeable after about a year.. At that point (right before the release of the Serenity milestone), the difficulty increases 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 a sort of ‘ice age’. The difficulty level is so high that anyone will not be able to find the blocks. This will probably allow PoS to be introduced via: casperIf it is proven.