0%
Overview page background
HomeOverviewsInfra
Pros and Cons of Running Your Own Node

Pros and Cons of Running Your Own Node

Alchemy headshot

Written by Alchemy

Brady Werkheiser headshot

Reviewed by Brady Werkheiser

Published on March 26, 20234 min read

Running a node means installing “client” software on a machine, which will download, verify, and propagate new blocks across a blockchain network. 

There are currently two types of node client software: execution clients and consensus clients. Execution layer clients are responsible for managing the overall state of the blockchain and completing transactions, and consensus layer clients are responsible for verifying transactions. 

To propagate transactions across the network, nodes use a series of P2P networking protocols to discover new nodes, establish secure connections, and synchronize state, blocks, and pooled transactions.

An Ethereum node is a node that operates on the Ethereum blockchain, and is one of three main types: light nodes, full nodes, and archive nodes. 

A full node client verifies all transactions in each new block, helps ensure that the network is secure, and that the transaction data is valid. 

A light node stores block header data, such as the preceding block's hash and a timestamp, rather than the complete block data like a full node does.

Light nodes send on-demand requests to full nodes, validating only the parts of the state that their user's require.

An archive node holds all of the same data as a complete node, as well as the full blockchain's history state data dating back to the Genesis Block (i.e. the first block).

Web3 developers may choose to run an Ethereum RPC node to read and write data to the blockchain. Some developers choose to run their own nodes to customize the node configuration, increase security, and make system-level optimizations that are not possible using shared or dedicated nodes with a RPC provider.

There are four main benefits of running an Ethereum node: privacy and security, censorship resistance, decentralization, and sovereignty. 

When using shared nodes, your transactions are sharing the same hardware as other companies, which may be a compliance or security risk for your specific product.

Some teams will prefer dedicated nodes, by running their own nodes to ensure complete isolation and autonomy, or using a node provider that offers dedicated nodes. 

Maintaining your own node enables you to have guaranteed broadcasted transactions to the rest of the network at any time. If you use third-party nodes, providers could potentially block transactions from your specific IP address or block transactions to specific smart contract addresses.

Running your own node means you are not rely on a centralized infrastructure provider to run your node. However, there are additional centralization vectors to consider such as the cloud provider you choose (e.g. AWS, GCP, etc.), or if you’re running a bare metal configuration, the server location (e.g. Virginia, Germany, etc.).

In the event there is an outage in your data center or with your cloud provider, web3 developers managing their own nodes should evaluate their providers, built a fault-tolerant setup, and document a business continuity plan.

Developers running their own nodes provides them with full control to choose their preferred node software clients, how those node clients are configured, the amount and make of their hardware, and other hardware-specific decisions.

This level of flexibility can mean better performance for specific web3 application use cases where an RPC node provider can not offer the same granular choices about hardware and software configurations.

Running your own node vs. using a node provider
Running your own node vs. using a node provider

There are three main trade-offs with running a node on your own compared to using an RPC node provider, including maintenance, time, and reliability costs.

Running your own full node requires dedicated hardware (e.g. RAM, storage, etc.) to download, validate, and store transaction information. Maintaining hardware to support changing levels of product usage is important to balance capacity and fault tolerance for your customers without overspending.

The maintenance costs of running a node will be highly dependent on whether you use a provider like Amazon Web Services, run a bare-metal server, engineering time, and the amount of hardware and bandwidth resources you need for your specific application.

Running and maintaining blockchain nodes can involve lots of technical issues, which can be difficult and time-consuming for beginners.

For web3 startups with limited funding and engineering time, dedicating a non-trivial amount of engineering resources to managing their own infrastructure comes at the cost of not focusing on building out the core functionality of their product. 

Additionally, as your web3 product scales, your engineering resources will also need to scale to maintain a fleet of reliable self-managed nodes to guarantee uptime and capacity to support additional users.

Startups considering running their own node face numerous reliability issues such as bugs in software updates, CPU spikes, memory leaks, disk issues, inconsistent peering, and data accuracy across a fleet of nodes.

Unreliable nodes not only take time away from engineers that could be building core functionality of their product, but it directly impacts the user experience. 

When nodes go down, users can not use your product, which has many potential downstream implications such as users churning to alternative products.

Alchemy is the leading web3 developer platform powering the top decentralized applications on chains such as Ethereum, Polygon, Optimism, Arbitrum, and more.

Below is a list of tools that Alchemy built to ensure devs have access to reliable node infrastructure and best-in-class developer tooling.

Alchemy Supernode is our web3 engine that replaces self-hosted blockchain nodes, with a fleet of nodes that developers interact with as if it was a single super node.

Supernode has unparalleled advantages:

  • 99.9% reliability

  • Dynamic scalability

  • Data correctness

  • No setup or sync times

  • Testnets

  • Enhanced APIs

Simplified view of Alchemy's Supernode architecture.
Simplified view of Alchemy's Supernode architecture.

Alchemy also provides an in-house suite of developer tools to catch errors and ship faster than ever. With Alchemy Build, devs can instantly search through millions of requests, view real-time mempool transactions, make JSON-RPC calls directly from their browser, and more. 

Alchemy Build’s suite of developer tools includes:

  • Composer - test out API calls in real-time from a simple online interface

  • Explorer - search through historical requests to debug transactions

  • Mempool Visualizer - see the real-time state of transactions in the mempool

Alchemy Build from the developer dashboard.
Alchemy Build from the developer dashboard.

Alchemy helps monitor the health of your applications with a robust command center to instantly check response times, usage analytics, insights, and alerts alongside daily reports so that you never lose touch.

Alchemy’s monitoring tool provides devs with:

  • Application monitoring and alerts

  • Dashboard with app-level details

  • Geographic visualizations to know where your users are located

  • Usage measurement to understand how your app is being used

Alchemy has expert, hands-on support, and manages the Alchemy Status Page to keep users updated about the status of our APIs.

  • 98% Customer Satisfaction (CSAT) Score

  • Access to Customer Product Engineers

  • Connections to other people in the industry

For urgent requests, send a support ticket to support@alchemy.com!

Overview cards background graphic
Desktop section background image

Build blockchain magic

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.

Get your API key