Blockchain Development is Hard, Here’s How to Make it Easy

Elan Halpern
Alchemy
Published in
10 min readJan 12, 2021

Whether you are using blockchain for the first time, working on a solo project, or working for the largest teams in the space, decentralized development can be challenging and frustrating, which is why Alchemy is here to make your life as a developer exponentially better.

Alchemy is the only comprehensive blockchain developer platform, both supplying developers with the ultimate Ethereum API and next generation node infrastructure, as well as giving them the tools they need to build, from debugging, to monitoring, to notifications, and tons more.

Developers interested in building decentralized applications, growing their product, or harnessing enterprise-grade reliability should use Alchemy to build their product.

We’ll break down what it takes to actually start developing a decentralized application, and then discuss how Alchemy’s products provide a seamless solution to each of the current problems.

A little background…

In order to communicate with the blockchain, developers need access to nodes. Nodes are the entry points for reading and writing to the blockchain.

Developers communicate with the blockchain through nodes

There are three primary options for accessing the Ethereum blockchain:

  1. Run a hosted node yourself
  2. Use a hosted node service
  3. Use a developer platform

Let’s go over each of them.

Running your own self hosted node

With the current blockchain landscape, running and maintaining self-hosted nodes can be expensive, unreliable, and extremely time-consuming. This can be a huge distraction from actually building your product, especially as you scale and require more capacity for increased traffic and stability.

In order to actually run your own node you have to:

  • Meet hardware requirements
  • Pay for server access
  • Set up your client
  • Sync your node (often several times due to failures)
  • Maintain state
  • Manually upgrade
  • ..and lots more if you want your node to remain functional

Not only is it an arduous process to get your node up, running, and maintained, but it also does not scale if you increase traffic.

Let’s look at an example.

Imagine you are running your own self hosted nodes for your blockchain app. You wake up one day and someone has made a viral TikTok using your app while skateboarding and singing along to Fleetwood Mac. All of the sudden, you get thousands, even millions, of people rushing to your app, creating a sudden increase in traffic to your nodes. This massive spike causes your node to crash due to an overload of requests, bringing your entire app down with it (think Coinbase when Bitcoin passed 40k). Even if you were able to spin up more nodes, they take days to fully sync.

So what happens? Odds are you’ll lose a bunch of users because they were unable to reach your app or you couldn’t serve their traffic. And sooner or later they’ll be making TikToks about your app not working 😢.

Using a node service

The traditional approach to scaling infrastructure in the Web 2.0 world uses multiple, indistinguishable servers managed by a load balancer. However, with blockchain, applications can’t treat nodes indistinguishably because each node syncs and stores data from the blockchain asynchronously.

Some node services simulate traditional infrastructure and run nodes behind a load balancer, which can distribute traffic, but often results in inconsistent data since the latest block on each node might be different.

For example, let’s say decentralized application X runs a traditional load balancer for their infrastructure. Joe, an excited new user of X decides to send some Eth to his friend Nikil. He sends off the transaction and it gets mined in block 102 and all is well. He leaves the app for a bit, then comes back to look at the full transaction info and the transaction is gone, app X doesn’t even recognize it’s existence. How could this be? Turns out, when Joe made his transaction, app X recognized block 102 as the “latest block”, however, the second time around Joe’s request got routed to a different node in the load balancer that recognized block 101 as the “latest” block, with no trace of Joe’s transaction. This is a terrible and nerve-wracking experience for the user.

Traditional load balancers can cause data inconsistencies for users

Without a new approach to infrastructure design, developers are forced to choose between user experience and scale.

This is the primary reason why 70% of the world’s top Ethereum apps are using Alchemy instead.

Using a developer platform

A developer platform is a comprehensive suite of tools that provides developers with the ability to easily build products. It’s not just infrastructure, developer toolkits, or dashboards — it’s everything and more.

To make things simple, let’s start with the infrastructure.

Our engineering team has spent years of development time hyper focused on building the best node infrastructure in existence. We even named it Supernode because it’s just that incredible.

This is not just nodes behind a load balancer. We built our Supernode API to be completely reliable, instantly scalable, have 100% data correctness, and the best part is, it only takes 1 minute to integrate for free.

With Alchemy, Scaling up your infrastructure is instant and seamless, you’ll never have to worry about being able to handle large and unexpected spikes in traffic, we’ve got you covered.

Now, Joe doesn’t have to worry about sending a transaction to his buddy Nikil and it disappearing 😄.

But, like I said, developer platforms are a lot more than just rad infrastructure…

We have an entire suite of products designed to make building decentralized applications just as easy as traditional web 2 applications. Our platform breaks down into five key products, and we’ll discuss each one below, providing links for you to learn more.

1. Alchemy Supernode

We’ve already discussed this briefly above, but if you’d like to learn more, check out our website and our documentation.

2. Alchemy Build

Alchemy Build is our suite of developer tools to help you spend less time debugging, and more time creating.

Good tools for debugging issues in the blockchain development world do not exist like the do for modern web and mobile development. This causes blockchain developers to spend days of engineering time trying to solve even simple issues, inevitably resulting in downtime for users.

With Alchemy Build, developers can easily investigate bugs and solve problems quickly for their users.

Alchemy Build breaks down into three key features.

1. The Explorer

Our Explorer tool allows you to instantly search through millions of your historical requests in milliseconds, providing filter options to nail down the culprit and fix the issue immediately.

Alchemy Explorer

2. The Mempool Watcher

The Mempool Watcher allows you to view the real-time state of transactions in the Mempool in order to identify mined, pending, or dropped transactions. This is huge for debugging transactions that are stuck due to nonce or gas issues and blocking subsequent requests from going through.

Mempool Watcher

3. The Composer

The Composer tool allows you to make requests directly from the dashboard to prototype and fix failing requests, or explore the behavior of new methods. We have a dashboard version and a public version of our composer for you to play around with!

Composer Tool

3. Alchemy Monitor

Alchemy Monitor is a comprehensive suite of dashboards and alerts for app health, performance, and user behavior.

Blockchain developers spend more reacting to active issues rather than preventing them from happening in the first place. This is due to a pure lack of monitoring tools, causing developers to learn about errors at the same time as their users.

With Alchemy monitor, developers can easily get the data they need through alerting and monitoring, giving them the ability to catch and solve issues before they balloon.

Alchemy Monitor breaks down into four key features:

1. Command Center

The Command Center serves as your dashboard homepage. You’ll get a quick overview of your app usage, health, errors, and have the ability to deep dive into any specific app with one click.

Command Center

2. Usage Analytics

Your Usage page allows you to compare and contrast production and staging apps, view your usage breakdown by method, and see traffic growth overtime.

Usage Analytics

3. User Insights

Our User Insights page aggregates geographic, traffic, and activity data for all your apps, without compromising privacy or security for your users.

User Insights

4. Alerts and Digests

Users receive automated alerts and daily digests about error reporting and key health metrics, keeping you in touch with your performance.

Alerts and digests

4. Alchemy Notify

Alchemy Notify provides timely notifications on the most important events.

Notifications have become expected for modern technology applications. However, the blockchain space continues to lag behind, missing essential notification infrastructure to meet user standards.

Imagine sending money to someone and having to continuously refresh the page to know when they actually receive it! This is a terrible user experience and should be an easy notification, but blockchain applications that wish to get real-time data to their users face complicated solutions and require large amounts of developer time.

This is where Alchemy Notify comes in. With a two-click integration, developers can start receiving notifications on data users care about.

The Alchemy Notify suite currently consists of four crucial notifications.

1. Mined Transactions

Notifications for when your transactions get mined, giving you peace of mind without having to constantly refresh the page.

Mined Transactions Alerts

2. Dropped Transactions

Notifications for when transactions get dropped, allowing you to immediately become aware of issues and retry the request.

Dropped Transactions Alerts

3. Address Activity

Notifications for all activity related to specific addresses, whether it be sending or receiving transactions. With Address Activity notifications, developers can track as many addresses as they’d like so each other their users can instantly be aware of activity.

Address Activity Alerts

4. Gas Price

Notifications for when gas price falls within a certain specified limit. Now, you no longer have to constantly check gas price aggregators to wait for the gas price to go down, we’ll let you know!

Gas Price Alerts

5. Alchemy Enhanced APIs

Alchemy’s Enhanced APIs were born out of hundreds of user interviews and monitoring developer experience. There are many computations developers wish to perform that are seemingly simple but require intricate and frustrating solutions, so we built Enhanced APIs so they can perform these actions in one call.

There are currently five products in our Enhanced API suite.

1. Notify API

Our Notify API allows you to create any of the Alchemy notify webhooks without having to go to the dashboard. We recommend using this API if you plan on tracking 10+ addresses using our address activity notifications.

2. Transfers API

The Transfers API gives you full transaction history for desired addresses and/or block ranges, pairing nicely with our Notify API in order to capture all past and present address activity.

If you wanted to get historical transactions without this API, you’d have to query for each block, filter for each type of transfer event by parsing through thousands of logs, and keep this information in some underlying datastore.

This single method API sounds a lot better now huh?

3. Token API

The Token API allows you to fetch token balances, allowances, and metadata for given addresses and tokens, saving you tons of time by fetching data in one call, rather than having to manually scrape the blockchain.

4. Trace API

The Trace API methods allow you to get a full externality trace on any transaction executed throughout the Ethereum chain, giving you deeper insight into transaction processing.

5. Debug API

The Debug API allows you to re-run transactions in the exact same manner as they were executed on the network. This includes replaying any transactions that may have been executed prior to the desired one.

Conclusion

If you made it this far, first off, congrats! That was a lot, we know. If this was all confusing to you, reach out to us! We have a live support team dedicated to helping you succeed. Secondly, this is only the beginning. We’re constantly working on new products to improve the developer experience, and we’re eager to hear your ideas as well!

If you’re interested in learning more, or building awesome products using Alchemy, you can sign up for free here, and make sure to follow us on Twitter, subscribe to our newsletter, and join our community discord!

Alchemy provides the leading blockchain development platform powering millions of users for 99% of countries worldwide. Alchemy’s mission is to provide developers with the fundamental building blocks they need to create the future of technology, and lower the barrier to entry for developers to build blockchain applications. Alchemy’s platform currently powers 70% of the top Ethereum applications and over $15 billion in on-chain transactions, and has been featured on TechCrunch, Wired, Bloomberg and numerous other media outlets. The Alchemy team draws from decades of deep expertise in massively scalable infrastructure, AI, and blockchain from leadership roles at technology pioneers like Google, Microsoft, Facebook, Stanford, and MIT.

Never want to miss an update? Subscribe to our newsletter here! Be sure to also follow our Twitter and join our Discord.

--

--

Elan Halpern
Alchemy

Elan Halpern works on developer experience at Alchemy, the world's leading blockchain developer platform. She received her BS in Computer Science at Stanford.