Saturday, December 2, 2023

Join the club


Infura was down, again. Are there any alternatives?

tl;dr Summary: Infura, a prominent Ethereum infrastructure provider, went down again on Apr 22, 2022 at 13:43 UTC. This impacted users of popular dApps like Metamask that uses Infura APIs to communicate with the Ethereum blockchain. 

According to the Infura status page, the service provider identified issues with several different APIs (application programming interface, used by software to communicate with underlying systems or other software) for Ethereum, Layer-2’s (Polygon, Optimism, and Arbitrum), and Filecoin resulting in users experiencing problems in transaction execution most notably with Metamask and the inability to mint NFTs.

As of Apr 22, 2022 at 16:27 UTC, the problem has been resolved, and all services are up and running. Although the real reasons for the outage are not clear, this incident has again revived the Centralization v.s. Decentralization debate within the blockchain community. 

Why is Infura centralized?

The latest incident has triggered a variety of responses from the blockchain user and developer community, with some not shying away from taking shots at Infura for its centralized nature. 

To understand this subject, we need to look at the basics of the Ethereum network and how developers use it to create applications. 

Ethereum is a peer-to-peer network of nodes (computers) running the Ethereum blockchain system. Unlike the Internet, which is a collection of centralized networks, a peer-to-peer network is decentralized, which means that all information about the network is stored in all the nodes and at all times. 

For a developer to create an app, the first thing they need to do is to run their own Ethereum node. Although nodes come in different flavors, most developers would install and configure a full node. A full node has the complete copy of the blockchain, which allows direct access to all data and smart contracts deployed on the blockchain. 

But running a full node comes with a cost. A full node is resource hungry and can be taxing on the hardware, disk space and the network bandwidth of the computer it is running on. On top of this, retrieving full data for a sync can take days to complete. It also needs to be kept up and running, and maintaining one could become a full time job. 

Even if a developer or a team of developers manage to successfully run and maintain their own node, as their dApp grows in user base, new nodes will be required to scale up. 

At this point, the team could either create a team of network engineers to create and manage this infrastructure or they could outsource this job to a third party vendor like Infura. 

Infura is a cloud-based node service provider that provides connectivity to Ethereum nodes via a set of APIs that dApps can use. These nodes are hosted and run on the Amazon cloud platform.

Most developers at this point will choose the second option as this allows them to focus their efforts on software. As more and more developers start to do this, the number of nodes required to support the blockchain declines, which puts the entire network at risk of centralization by creating a single point of failure. 

Currently Infura accounts for 5 to 10 percent of nodes on the Ethereum blockchain, which makes it centralized enough to become a significant single point of failure, as was evident in this latest outage and in 2020

The Amazon cloud platform in itself is a single point of failure. In 2011, an outage in Amazon Web Services (AWS) brought down major websites like Netflix

Decentralized alternatives

One of the main reasons behind the inability to run and maintain full nodes is that the blockchain data or “state” keeps growing.

Ethereum Full Node Sync (Default) Chart details the chain data size for GETH

Several projects address this issue in different ways, but with the same intention of simplifying the running of individual nodes for developers and users alike.

Parity Technologies has created a javascript library called light.js that is an alternative to web3.js and allows dApp developers to use light clients instead of running full nodes or centralized services like Infura. 

A light client (or node), unlike a full node, does not require to download the entire state but will only request information as and when required making them much less resource intensive but still trustless. 

According to Amaury Martiny, software developer at Parity Technologies, “If a dApp is paired with its own light client to query state and make transactions, it does not need to rely on centralized infrastructures anymore.”

Turbo Geth is another project that has re-written Geth (the most popular Ethereum client software) and reduced its storage down to one-fifths its current size. This has allowed nodes to run on cheaper hardware.

VIP Node, on the other hand, works on the concept of incentivising full nodes that are online. Developers get access to a collection of full nodes by paying a subscription fee which is shared with the nodes. 

Infura itself is also trying to diversify the number of cloud providers it relies on. According to Michael Wuehler, co-founder of Infura, “Our efforts are mainly about continually trying to push more and more decentralization into the way that our technology stack is delivered.”


Related Articles

Enroll now

Latest Articles