Metropolis, Geth 1.5, and Parity 1.4: Ethereum Updates

Within the past five months, the Ethereum technology has been rapidly progressing with new updates and releases. Even amidst the DoS attacks that began in September and continuing into hard forks three and the latest fork (Spurious Dragon) to be enacted, the community involved with the technology has not stopped with progression. While these updates to the technology were created to deter the DoS attacks, the Foundation Team has still been working diligently in preparation for the newest version of Ethereum, Metropolis. In fact, these attacks could theoretically be viewed as a catalyst for the growing development.

From Homestead to Metropolis

When ETHNews asked Vitalik Buterin about the release of Metropolis at the Money 20/20 event, he simply stated, “Possibly in early 2017.” However, on reddit, he mentions that he would like to immediately start Metropolis after the fourth fork, Spurious Dragon. The original concept and components that would comprise the third stage of Ethereum, Metropolis, as stated by Vinay Gupta, release coordinator for Ethereum, “Metropolis is when we finally officially release a relatively full-featured user interface for non-technical users of Ethereum and throw the doors open: Mist launches, and we expect this launch to include a DApp store and several anchor tenant projects with full-featured, well-designed programs to showcase the full power of the network. This is what we are all waiting for, and working towards.”

In preparation for all of these working components, the Ethereum Foundation has steadily been announcing updates to the technology and creating more non-tech friendly websites surrounding the developments.

Geth 1.5 Release

Geth, the command line interface for running a full Ethereum node in Go-Ethereum, now has a new user-friendly home on the internet with a full site. The site is geared toward anyone starting out with Go-Ethereum, complete with a detailed installation guide for all platforms, and a “downloads” section that gathers all binaries from every service build that the Ethereum Foundation maintains. The new release of Geth1.5 now incorporates a lot of changes.

Here is a quick review of key components of Geth 1.5 as described by Péter Szilágyi, core developer of Ethereum. Click here to view the full blog release with a more detailed account of Geth 1.5 updates.

Mobile Platforms

The 1.5 release of go-ethereum introduces our first experimental attempt at providing true Android and iOS library reusability of our codebase. 

Light Client

We’re proud to finally include an alpha version of a light client inside Geth 1.5. It can sync in minutes (or less) and consume only megabytes of disk space, but nonetheless fully interacts with the Ethereum blockchain and is even usable through the Mist browser


With the arrival of 1.5, we’re very excited to include an initial proof-of-concept implementation of the Swarm protocol for developers to play with. It is included as a separate daemon process (and inherently executable binary), not embedded inside Geth. This allows users to run Swarm against any Ethereum client while also preventing any issues from interfering with the main node’s functionality.

RPC Subscriptions

The issue is that polling for changes is a bad idea since most of the time there’s no change, only the possibility of one. A better solution, instead of querying the node for changes every now and then, is to subscribe to certain events and let the node provide notification when there’s a change. Geth 1.5 enables this via a new RPC subscription mechanism. Any DApp (or external process) can subscribe to a variety of events and leave it to the node to notify when needed. Since this mechanism is not possible over plain HTTP (like it is over IPC), the 1.5 release also includes support for running the RPC API via WebSockets.


With the 1.5 release, we’re introducing a new mechanism for tracing transactions, a JavaScript map-reduce construct. Instead of the usual trace options available until now, you will be able to specify two JavaScript methods: a mapper invoked for every opcode with access to all trace data, and a reducer invoked at the end of the trace to specify the final data to return to the caller.

Vendored Dependencies

With the Geth 1.5 release, we’ve switched over to the officially recommended way of vendoring dependencies (fully supported starting with Go 1.6), namely by placing all external dependencies into locations native to the Go compiler and toolchain (vendor), and switching to a different dependency management tool to more cleanly handle our requirements (called trash).

Build Infrastructure

Geth 1.5 release encompasses the complete transition from the old build infrastructure to one that is fully self-contained within our repositories. We moved all builds on top of the various continuous integration services we rely on (Travis, AppVeyor, CircleCI), and implemented all the build code ourselves as an organic part of the go-ethereum sources.

Build Artifacts

Starting with Geth 1.5, we are distributing significantly more build artifacts than before. 

Digital Signatures

In Geth 1.5 and on, all our officially built archives will be digitally signed via a handful of OpenPGP keys. We will not rely on checksums any more to prove authenticity of our distributed bundles, but will ask security-conscious users to verify any downloads via their attached PGP signatures.

Repository Branches

Beginning with Geth 1.5, we will no longer maintain a separate master branch for latest-stable and develop branch for latest-edge, rather we will switch to master as the default and development branch of the project, and each stable release generation will have its own indefinitely living branch (e.g. release/1.4release/1.5).

Parity Release

With the new development of Geth, Parity also has a few updates with Parity 1.4. Parity is a project under the Ethcore team and is touted as the world’s fastest and lightest Ethereum client. Written in the Rust programming language, Ethcore presents it as the “Next Generation Ethereum Browser.” Using Parity, developers can use it to access all features of the Ethereum network. The source code is released under the GPLv3 license.

Parity 1.4 (codenamed Civility) brings with it several key pieces of functionality. Our biggest single core improvement is the introduction of Warp Sync. This is a highly optimized chain synchronization mode that uses various methods of compression to distribute the state of Ethereum. Cryptographic manifests ensure you are downloading the right data and because it progressively downloads the blocks and receipts in the background, you will end up with a node exactly as if you had done a full sync. You should be able to synchronize—from nothing—in around 10 minutes, assuming your internet connection is decent. Warp-sync can be enabled with --warp; this feature is currently experimental; think twice about using it when doing anything important.

Ethcore warns users that they must update their Parity clients to the new version. To learn more about Parity and the update, head to the Github page.

As new tech releases arise, the Ethereum community is hopeful that these updates will contribute to a more streamlined and mainstream release of Metropolis.