Alchemy and Dapper Labs teaming up to solve blockchain infrastructure problems
Blockchain development can be rewarding and full of interesting technical problems.
We have built a few applications and continue to do so. If you have built a dApp or plan to, you may see that building blockchain applications (dApps) has a lot of known and unknown challenges. Some of the problems with blockchain infrastructure are well documented but difficult to resolve, such as nodes being out of sync or transactions failing. In this article, we explore how our infrastructure evolved as we aimed to solve these problems, highlighting the learnings along the way.
Here at Dapper Labs, we tried a few infrastructure-as-a-service solutions and running our own nodes. In the end, we were happy to find Alchemy, a team who we worked with to solve the challenges of blockchain infrastructure which should’ve been solved at the protocol level.
Our first external infrastructure-service provider was flawed
As we scale and build new consumer experiences we often ran into problems with the native infrastructure on Ethereum. Performance was unstable, with hours of full outages, nodes being out of sync with the network, and congestion when submitting transactions. Nonce management was so poor that we began storing this ourselves. We knew this wasn’t going to be a viable solution as we expanded our users and gaming experiences.
We preferred to run our own nodes rather than use a broken product
Without a clear path forward, we took matters into our own hands and ran our own nodes. We found slightly better consistency, or at least the ability to diagnose and solve problems as soon as they occur rather than wait for customer support.
Running our own nodes took two developers around two weeks to initially set up. However, these developers needed to make ongoing changes to the infrastructure to solve problems as they emerged. Load balancing caused network-state consistency issues, so we built clusters of nodes that went straight to failover instead. If our nodes fell out of sync, we would fail over to the next node and only point to one node at a time. Still, problems continued to occur.
These node issues propagated to CryptoKitties users. We had a community manager but no support to troubleshoot specific customer complaints. When nodes broke, Cryptokitties would get backed up and kitten births would not happen. Transactions were sent to the network, but users could not see them. For instance, one CryptoKitties token would seemingly have two owners.
Many problems were difficult to diagnose and solve, but the culprit was the stability of our geth nodes on a congested network. When we would experience one to two hours of downtime, we knew we needed a better solution. We added health checks to compare the head of the chain to Etherscan. Even so, peer connections were dropped abruptly.
Introduction our work with Alchemy
While our engineers were able to run a more stable infrastructure than our first external infrastructure provider, running nodes in house was not a perfect solution. When we found out about Alchemy, we learned that Alchemy had already built a scalable solution that we could plug in and help automate our existing processes. We could shift the burden of diagnosis, troubleshooting, and maintenance to Alchemy, while maintaining uptime for our players.
After trying Alchemy, the Dapper Labs team found that Alchemy’s product solved our consistency issues and was simply a reliable, stable product. Our work with Alchemy has allowed us to extend beyond our current capacity and deliver a great experience for players on CryptoKitties, Cheeze Wizards, and other projects.
Alchemy’s core product has allowed us to make over 7 million queries a day to the network, run the top blockchain dApp worldwide, and submit over 1200 ETH in transactions, including $28M+ in sales. We were able to re-resource our node developers to build other games and Flow. Our teams work very closely together to launch new products and ensure a seamless user experience.
Key takeaway is find a solution that simply works
We recommend trying various solutions like we did to find an infrastructure product that serves consistent, reliable blockchain data and writes transactions without risk of failure. Ideally, depending on your bandwidth, your chosen solution does not require constant maintenance. We are super happy with Alchemy since the team is comprised of blockchain experts who we trust to solve the technical challenges of blockchain infrastructure.
We plan to release future posts on blockchain architecture! In the past, we have written about how to build a dApp. We plan to continue sharing our experiences with architecture and infrastructure here.
Built a dApp? We’d also love to hear about your experiences!
Learn more about Alchemy here!
A lot of our challenges building CryptoKitties informed our approach to Flow, a developer-friendly blockchain Dapper Labs is helping to create. You can learn more about Flow here!