# Solana RPC 的工作原理

## Crypto 中的 RPC 是什么？

在传统 (web2) 软件开发中，您通常使用 API 来获取所需的数据。您可以使用 Stripe API 来处理支付数据、使用 Twilio 来处理短信数据、使用 Bloomberg 来处理财务数据、使用 Plaid 来处理银行数据等等。

这里要注意的有趣的事情是，您正在寻找的数据通常被集中实体储存或控制。

在加密领域，您需要的所有数据都在链上。它完全无需许可，任何人都可以查看和使用。那么如何检索它呢？使用 RPC。

RPC（技术上代表远程过程调用）通常被用作 RPC 节点的简称。这些节点参与区块链网络并公开开发人员可以调用的方法（称为远程过程调用）。

## RPC 在 Solana 上如何工作？

为了使 Solana 正常运行，它需要一个运行其软件客户端的分布式节点网络。

这些节点可以分为两种类型：验证器（Validators）和 RPC。

这两个节点都有一个重要的共同点：它们都持续监视区块链并存储其最新数据（或状态）。

然而，它们之间存在一个关键的区别。

验证者是投票（例如：“是的，这个区块有效”）并参与共识的节点。

RPC 是不会投票的节点 — — 但会处理处理链上数据的请求。请注意，这种配置在其他区块链中并不常见，例如以太坊，其中验证器和 RPC 节点通常是同一个。

当您进行 RPC 调用时，您正在调用参与区块链的节点上的程序/函数。由于它参与网络，因此它知道最新数据是什么，并可以根据请求向您显示它。

## 如何使用 Solana RPC？

要从 Solana 区块链获取数据，您必须向参与网络的 RPC 节点发出 JSON-RPC 请求。

典型的 JSON-RPC 请求可能如下所示：

```
 curl http://localhost:8899 -X POST -H "Content-Type: application/json" -d '  { "jsonrpc": "2.0","id":1,"method":"getBlock", "params": [430, { "encoding": "json", "maxSupportedTransactionVersion":0, "transactionDetails":"full", "rewards":false } ] } 
```

此请求向位于 localhost:8899 的 RPC 节点询问 getBlock RPC 方法。它知道收到此请求后该做什么，因为它正在运行 Solana 区块链的软件客户端。

实际上，没有人真正使用这样的直接 JSON-RPC 请求（尽管你当然可以！）。大多数开发人员更喜欢使用 RPC 客户端。最常用的是 Solana Web3 JS 库。

## 如何开始使用 RPC？

RPC 极其重要 — 没有它们，您根本无法使用区块链。因此，有些公司专门致力于完善 RPC 体验。这些机器的使用率非常高，在高负载下表现良好至关重要。优秀的 RPC 提供商将可靠、具有一致的性能，并将向最终用户公开指标以查看他们随时间推移的使用模式。在 Helius，我们是 Solana 原生工程师，我们的使命是为各种开发人员提供最佳的 RPC 体验。您可以免费开始使用，无需电子邮件注册或信用卡，只需在此处单击两次即可。这旨在成为 Solana RPC 的一个非常简短且适合初学者的介绍。

如有不明白或者不清楚的地方，请加入官方电报群：[**https://t.me/gtokentool**](https://t.me/gtokentool)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gtokentool.com/qu-kuai-lian/solana-rpc-de-gong-zuo-yuan-li.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
