Centralized Platform Dependence: Ethereum’s Growing Pains
We had just launched a major milestone release with our blockchain game, CryptoRome. Through smart contracts on the Ethereum blockchain, we had successfully released 5,000 newly minted NFTs using the nascent ERC-998composable token standard. We actually became the first blockchain game to leverage this standard! We immediately followed this release up with tying the tokens to our products and marketplace. For 24 hours, we were riding high.
And then — catastrophic failures. Everywhere.
Given the large release and the new integrations with our gaming platform, we assumed that the rippling failures were caused by instant scale, coupled with the complexity of the composable tokens interacting with our system. Couple this with the new customers we were onboarding daily. Where did we go wrong?
This sent the entire company into red alert over the weekend and into the week to debug and solve the issues plaguing our product launch. Over a four day stretch, our engineering group put in numerous performance improvements and caching elements to find the cause of the issue.
What we came to learn was that a bug was pushed out to the Ethereum network’s client wallets used by most Infura nodes. For background, Infura is a centralized platform service that handles 80% of the transactions in the entire blockchain space (Read about it here). This includes access from most blockchain games and even Metamask. Yes, I am talking about centralized access to the decentralized Ethereum network. As we move to open, decentralized ecosystems, we’re still facing the same platform dependence issues that existed in the past and still plague the software industry in general.
The bug in question was not widely publicized as we could not find any notifications of the issue. As a result, we continued trying to find a solution to the many issues our community of players were experiencing during this time. In the end, we found that a lot of our peers in the dApp space were experiencing similar issues, including the MLB Crypto Baseball project.
This is by no means and attack on Infura — what they do is important to the adoption and proliferation of blockchain technology in general. However, developers need to be mindful of this paradox when designing and building new solutions on the blockchain: access to a decentralized network still contains centralized dependencies.
Don’t fret — the future is still bright
Our negative experience has not slowed us down or made us any less committed to developing decentralized apps on the Ethereum network. Since the inception of GigLabs a year ago, we have worked on various blockchain projects, with the primary focus on the Ethereum network and innovation around smart contacts. As former software engineers, the idea of contracts that run a block of code and can extract fees is game changing in the the Open Source world which has emerged over the past 20 years.
One article I remember reading early on discussed the value of a decentralized platform that companies can build their applications on. In this Forbes article, they discuss Facebook and centralized data stores/platforms. Public blockchains provide a way for companies to create applications and shareable data in a manner that is not controlled by a single gatekeeper. It is also not reliant on a single point of failure (another company) or the platform provider continuing to exist.
In recent weeks, we have seen the value of Ether continue to plummet and the viability of mining on the Ethereum network to continue becoming less and less lucrative. In fact, most of the cryptocurrencies have not been immune to this bear market. This has led to a plethora of articles on the death of Ethereum and arguments that Ether, the currency used as payment to mine transactions going to zero. When the value to mine goes down, some miners stop running their devices and the network becomes more centralized as a result.
Yet the promise and potential of the Ethereum network is too great. We have built a lot of our company’s tech and released a number of NFTs for our blockchain game, CryptoRome, using smart contracts on the Ethereum blockchain and will continue to do so.
In the end, the issues were resolved and we are much better for the entire experience.
This is what we learned from our experience:
Decentralized platforms can fail and when you build upon them, you are just as susceptible to failures of the underlying platform as with centralized systems.
Ethereum is not as decentralized today as we all would like with most applications running through Infura today.
When interacting with a platform you do not control, have contingency plans and workarounds for when they inevitably fail.
Great customer support goes a long way. We worked with and communicated to our customers throughout the entire ordeal and their appreciation has been voiced within our communication channels.
We believe building projects on decentralized platforms are the way of the future. We will continue leading the way in NFT and smart contract innovation. However, everyone needs to understand these are still relatively early days for Ethereum and other blockchain projects, and the platform will continue to go through growing pains as we move forward.