---
title: "自建节点的利弊"
description: "自建节点与使用 Alchemy 的区别"
---

# 自建节点的利弊

运行节点意味着在一台机器上安装“客户端”软件，该软件将下载、验证并在区块链网络中传播新区块。

目前有两种类型的节点客户端软件：[执行客户端和共识客户端](https://www.alchemy.com/overviews/execution-layer-and-consensus-layer-node-clients)。执行层客户端负责管理区块链的整体状态并完成交易，共识层客户端负责验证交易。

为了[在网络中传播交易](https://www.alchemy.com/overviews/transaction-propagation)，节点使用一系列 P2P 网络协议来发现新节点、建立安全连接，并同步状态、区块和待处理交易池。

## 什么是 Ethereum 节点？

Ethereum 节点是在 Ethereum 区块链上运行的节点，共有[三种主要类型](https://www.alchemy.com/overviews/full-vs-light-vs-archive-nodes)：轻节点、全节点和归档节点。

#### **1. 全节点**

全节点客户端会验证每个新区块中的所有交易，帮助确保网络安全，并确保交易数据有效。

#### **2. 轻节点**

轻节点存储区块头数据，例如前一区块的哈希值和时间戳，而不像全节点那样存储完整的区块数据。

轻节点向全节点发送按需请求，仅验证其用户所需的部分状态。

#### **3. 归档节点**

[归档节点](https://www.alchemy.com/overviews/archive-nodes)保存的数据与全节点相同，此外还保存了区块链自创世区块（即第一个区块）以来的完整历史状态数据。

### 为什么要运行 Ethereum RPC 节点？

Web3 开发者可能会选择运行 Ethereum RPC 节点，以便向区块链读取和写入数据。有些开发者选择运行自己的节点，以便自定义节点配置、提高安全性，并进行使用 RPC 提供商的共享节点或专用节点无法实现的系统级优化。

## **运行自己的 Ethereum 节点有哪些好处？**

运行 Ethereum 节点主要有四大好处：隐私与安全、抗审查性、去中心化和自主权。

### **1. 隐私与安全**

使用共享节点时，你的交易与其他公司共享同一硬件，这对你的特定产品可能存在合规或安全风险。

一些团队会更倾向于使用专用节点，方法是运行自己的节点以确保完全隔离和自主，或者使用提供专用节点服务的节点提供商。

### **2. 抗审查性**

维护自己的节点意味着你可以随时保证将交易广播到网络的其余部分。如果使用第三方节点，提供商可能会屏蔽来自你特定 IP 地址的交易，或屏蔽发往特定智能合约地址的交易。

### **3. 去中心化**

运行自己的节点意味着你不依赖某个中心化基础设施提供商来运行节点。不过，仍需考虑其他中心化因素，例如你选择的云服务提供商（例如 AWS、GCP 等），或者如果你运行的是裸机配置，还需考虑服务器所在位置（例如弗吉尼亚州、德国等）。

一旦你的数据中心或云提供商发生故障，自行管理节点的 web3 开发者应评估其提供商、构建容错方案，并制定业务连续性计划文档。

### **4. 自主权**

开发者运行自己的节点，可以完全自主地选择自己偏好的节点软件客户端、这些节点客户端的配置方式、硬件的数量和型号，以及其他与硬件相关的决策。

这种灵活性对于特定的 web3 应用场景可能意味着更好的性能，而 RPC 节点提供商无法在硬件和软件配置方面提供同样细粒度的选择。

<ImageBlock
  src="https://media.alchemy.com/1704095403-running-node-vs-using-node-provider.jpeg"
  alt="自建节点与使用节点服务商的对比"
  width={1600}
  height={1029}
  caption="展示自建节点与使用 Alchemy 等节点服务商的区别的示意图。"
/>

## **运行自己的节点有哪些权衡？**

与使用 RPC 节点提供商相比，自行运行节点主要存在三方面的权衡，包括维护成本、时间成本和可靠性成本。

### **1. 维护成本**

运行自己的全节点需要专用硬件（例如内存、存储等）来下载、验证和存储交易信息。维护硬件以支持不断变化的产品使用水平，对于在不超支的情况下为客户平衡容量和容错能力非常重要。

运行节点的维护成本在很大程度上取决于你是否使用像 Amazon Web Services 这样的提供商、是否运行裸机服务器、工程时间投入，以及你的特定应用所需的硬件和带宽资源量。

### **2. 时间成本**

运行和维护区块链节点可能涉及大量技术问题，对初学者来说可能既困难又耗时。

对于资金和工程时间有限的 web3 创业公司而言，将大量工程资源投入到自行管理基础设施上，就意味着无法专注于构建产品的核心功能。

此外，随着你的 web3 产品规模扩大，你的工程资源也需要相应扩展，以维护一支可靠的自管理节点队伍，确保正常运行时间和容量以支持更多用户。

### **3. 可靠性成本**

考虑自行运行节点的创业公司会面临诸多可靠性问题，例如软件更新中的错误、CPU 峰值、内存泄漏、磁盘问题、对等连接不稳定，以及在整个节点队伍中的[数据准确性](https://www.alchemy.com/blog/data-accuracy)问题。

不可靠的节点不仅会占用工程师本可用于构建产品核心功能的时间，还会直接影响用户体验。

当节点宕机时，用户将无法使用你的产品，这会带来许多潜在的连锁影响，例如用户流失到其他替代产品。

## **Alchemy 在节点基础设施方面为 Web3 开发者提供的 4 种帮助**

Alchemy 是领先的 web3 开发者平台，为 Ethereum、Polygon、Optimism、Arbitrum 等链上的顶尖去中心化应用提供支持。

以下是 Alchemy 构建的一系列工具，旨在确保开发者能够获得可靠的节点基础设施和一流的开发者工具。

### **Alchemy Supernode**

[Alchemy Supernode](https://www.alchemy.com/docs/reference/api-overview) 是我们的 web3 引擎，用一支节点队伍取代了自托管的区块链节点，开发者与这支队伍交互时，感觉就像在与单个超级节点交互一样。

**Supernode 具有无可比拟的优势：**

- 99.9% 的可靠性
- 动态可扩展性
- 数据正确性
- 无需设置或同步时间
- 测试网
- 增强型 API

<ImageBlock
  src="https://media.alchemy.com/1704123279-alchemy-supernode-architecture.jpg"
  alt="Alchemy Supernode 架构简图。"
  width={1593}
  height={1600}
  caption="Alchemy Supernode 架构简图。"
/>

‍

### **Alchemy Build**

Alchemy 还提供了一整套自研开发者工具，用于捕获错误并加快发布速度。借助 Alchemy Build，开发者可以即时搜索数百万条请求、实时查看内存池交易、直接从浏览器发起 JSON-RPC 调用，等等。

Alchemy Build 的开发者工具套件包括：

- **Composer** - 通过简单的在线界面实时测试 API 调用
- **Explorer** - 搜索历史请求以调试交易
- **Mempool Visualizer** - 实时查看内存池中交易的状态

<ImageBlock
  src="https://media.alchemy.com/1704123332-alchemy-build.jpg"
  alt="开发者控制台中的 Alchemy Build。"
  width={1400}
  height={670}
  caption="开发者控制台中的 Alchemy Build。"
/>

### Alchemy Monitor

Alchemy 通过强大的指挥中心帮助你监控应用的运行状况，让你可以即时查看响应时间、使用分析、洞察和告警，并配合每日报告，让你时刻掌握情况。

Alchemy 的[监控工具](https://www.alchemy.com/monitor)为开发者提供：

- 应用监控与告警
- 包含应用级详情的仪表盘
- 地理可视化，了解用户所在位置
- 使用量统计，了解应用的使用情况

### ‍**Alchemy Support**

Alchemy 提供专业的一对一支持，并维护 [Alchemy Status Page](https://status.alchemy.com/)，让用户随时了解我们 API 的状态。

- 98% 的客户满意度（CSAT）得分
- 可联系客户产品工程师
- 与业内其他人士建立联系

如有紧急请求，请发送支持工单至 **support@alchemy.com**！
