I want to preface this piece by saying there may be inaccuracies in it because I wrote it in an hour and the story is still developing. I’ve done my best to be as accurate as possible and any errors are, of course, my own!
Alright so if you have been using Ethereum over the last few hours you would’ve noticed that some of the apps that you were interacting with (like Synthetix and Compound) were showing incorrect information and that you weren’t able to send any transactions if you were using MetaMask with its default infrastructure provider. The tl;dr can be found in the tweet below from Martin (an Ethereum core developer) but if you want the bigger picture, keep reading!
First, a break down on what happened today. Basically, infrastructure providers, organizations such as exchanges and individuals running an older version of Geth (an Ethereum client) split off of the main Ethereum chain into a “minority fork”. This occurred because there was actually a consensus bug that was fixed in one of the recent Geth client releases which means the older clients fell out of consensus with the newer ones (this is not meant to happen unless there is a scheduled hard fork/network upgrade). The reason many of your favorite DeFi apps stopped working and why you weren’t able to send any transactions from MetaMask was because Infura (the infrastructure provider that these apps and MetaMask use) was actually running an older Geth client that was affected by this (but don’t be too hard on them for this). It’s also important to note that other clients (Nethermind, Besu and OpenEthereum) don’t seem to have been affected by this at all - this is why client diversity matters!
So you may be wondering, what the hell is an “infrastructure provider” on Ethereum? Well okay, let me explain. When you use MetaMask, you are using what is referred to as a “lite client” to interact with the Ethereum network which means you are relying on other people’s infrastructure/full nodes (in this case, Infura, as that is what MetaMask defaults to). The nice thing is that you can actually change which infrastructure provider you are using by manually adding a different one yourself in MetaMask - you could even point it at your own Ethereum full node. Though unfortunately most people don’t do this for a variety of reasons (they don’t really care, it’s too technical, they are unaware etc). All of this isn’t unique to Ethereum either - Bitcoin and other similar blockchains function in the same way.
Alright so now’s the time when I remind you to run your own Ethereum full node (if you can). There are many obvious benefits to doing this and contrary to what certain people on Twitter will tell you, it’s not that difficult to set one up! There’s a whole guide on EthHub that will help you to get started, there’s this excellent guide from Justin Leroux and there’s a guide on the Ethereum.org website here. There are also plenty of people around to help you if you get stuck on Reddit, Twitter and various Discord channels. Running your own node will give you the most decentralized experience that Ethereum has to offer.
It’s always entertaining watching these stories unfold in real time and seeing the conflicting information flying around while everyone tries to reach consensus (pun intended). I always prefer to go directly to the source (the Ethereum core developers) because by relying on third parties you are bound to come across some incorrect information. Additionally, this incident highlighted the need for better and more distributed infrastructure across the entire ecosystem.
Have a great day everyone,
Anthony Sassano
Enjoyed this piece? You can get a fresh one sent straight to your inbox every week day by simply hitting that subscribe button below!
All information presented above is for educational purposes only and should not be taken as investment advice.
Follow and Support Me
Donations (sassal.eth and my Gitcoin Grant)
EthHub (ethhub.eth)
Turned on tweet notification for Eth devs Twitter accounts already.