Ethereum is over the hump, moving towards the third of its four planned stages of development to further the groundwork for its so-called âworld computerâ.
The next stage, called Metropolis, fuses a motley bunch of technical changes that might seem a bit random, but will pave the way for future updates that make ethereum easier to use.
The upgrade has taken longer than expected, largely because an unknown attacker launched denial of service attacks on the network last year, disrupting transactions and projects being built on the platform.
However, recent developer meeting notes show that progress is continuing, with some teams almost done on implementing their changes and now preparing for testing.
Dimitry Khokhlov, Ethereum Foundation testing engineer, told CoinDesk that development of the third phase is roughly halfway to completion.
So, whatâs still left to do?
Firstly, developers need to finish coding the upgrades. Although this long-awaited release wonât include dramatic changes such as proof-of-stake or sharding, this stage does incorporate roughly 10 Ethereum Improvement Proposals (EIPs).
All these EIPs look to pave the way for âabstractionâ by reducing the amount of features that are hard-coded into ethereum. The aim, much like the aim of ethereum itself, is to leave more room for app developers to make their own design decisions.
EIP 86, for example, allows users or app developers to secure accounts whatever way they wish.
An Ethcore spokesperson told CoinDesk that Parity, a popular ethereum client written in Rust, has implemented seven of the 10 EIPs, but is awaiting clearer instructions as developers come to consensus on the changes that need to be implemented.
This ârough consensusâ approach is common in open-source development.
The wait shouldnât be long for Parity or Geth as these projects are nearing completion. Others, though, written in different programming languages, including python and C++ are further behind.
One tricky part is making changes to all ethereum clients, no matter what programming language theyâre written in, in lockstep.
Ethereum Foundationâs Khokhlov has been writing tests using a tool called Hive to ensure not only that the clients implement the changes correctly, but that all clients agree on consensus-level changes. Thatâs because if all clients donât follow the same rules, there could be an accidental split into different networks (as happened briefly in November).
Just like former phase changes Frontier and Homestead, the shift to Metropolis requires a âhard forkâ â meaning nodes or miners that fail to upgrade to the new blockchain will be left behind. Because of the possibility of an inadvertent split, hard forks are controversial and taken very seriously.
But, since this change has long been on the ethereumâs technical roadmap, the conventional wisdom is that itâs unlikely to lead to a split.
Even so, the changes require extra care, leading Khokhlov to say:
âI have a headache from hard fork transition rules.â
For Khokhlov, there are a lot of âifsâ in ensuring every corner case is considered to make sure usersâ ether is safe in every situation.
For example, heâs had to make sure that transactions on the new fork only work if the âgas limitâ and transaction signatures are correct, and that opcode behavior, which has changed from fork to fork, does not disturb operations either.
âThe more changes we have, the more checks are added to the code and the more logic to check. That does not make it a clean code,â he said.
But when allâs said and done, the Metropolis update will likely allow better ethereum applications to be created.
Stefan George, CTO of ethereum prediction market Gnosis, told CoinDesk:
âHaving more abstraction always allows for more flexibility.â
For example, the added flexibility could allow a recipient or middleman to pay transaction fees rather than app users, he said.
This could be beneficial for users utilizing ethereum-based based apps, such as a notebook. Normally, the user would need to buy ether to make any change, such as adding to or deleting a note, but with the Metropolis upgrades, the provider can pay the fee and users can make changes without the extra step of buying ether.
Ultimately, this moves the ethereum protocol closer to the familiar experience of a traditional app store.
âI imagine we will get a lot more users using ethereum services this way,â George said.
George added that another Metropolis change will also help iron out some kinks for off-chain technologies that allow data to be lifted off the main ethereum blockchain, improving performance and scalability of the network without compromising usersâ security.
This adaptability will, again, put developers in control of their application designs.
As the Parity team put it:
âMetropolis is a significant step that improves the protocol and makes a few use cases that were previously unfeasible.â
Correction: An earlier version of this article incorrectly stated a fact about ethereumâs Geth implementation. This has been revised.
Skyscrapers image via Shutterstock