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.
The 1.5 release of
go-ethereumintroduces our first experimental attempt at providing true Android and iOS library reusability of our codebase.
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.
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 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
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.
Starting with Geth 1.5, we are distributing significantly more build artifacts than before.
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.
Beginning with Geth 1.5, we will no longer maintain a separate
masterbranch for latest-stable and
developbranch for latest-edge, rather we will switch to
masteras the default and development branch of the project, and each stable release generation will have its own indefinitely living branch (e.g.
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.