What’s to Do Before Ethereum Enters ‘Metropolis’?

skyscrapers
23 April 2017

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?

Improvement proposals

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.

Complex process

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.

Benefits await

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