# 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)
