Solana RPC 的工作原理

  • Helius
  • 发布于 2023-03-26 15:21
  • 阅读 10

本文介绍了在加密领域中RPC(远程过程调用)的作用及其在Solana区块链上的具体实现。文章阐述了RPC节点与验证者节点的区别,以及如何通过JSON-RPC请求与Solana RPC节点交互,获取链上数据,适合初学者了解Solana的RPC工作方式。

3 分钟阅读

2023 年 3 月 24 日

加密中的 RPC 是什么?

在传统的 (web2) 软件开发中,你通常通过与 API 进行交互来获取所需的数据。你可能会使用 Stripe API 来处理支付数据,使用 Twilio 来获取短信数据,使用 Bloomberg 来获取金融数据,使用 Plaid 来获取银行数据,等等。

有趣的是,你所寻找的数据通常由集中实体封锁或控制。

在加密世界中,你所需的所有数据都在链上。它是完全无需许可的,任何人都可以查看和使用。那么,你如何检索这些数据呢?通过 RPC。

RPC — 虽然技术上代表远程过程调用(Remote Procedure Calls) — 通常用作 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 库,可以在 这里 找到。要查看 Solana 上可用的 JSON RPC 方法的完整列表,请阅读我们的文档。

如何开始使用 RPC

RPC 非常重要 — 如果没有它们,你将完全无法使用区块链。因此,有一些公司专注于完善 RPC 的使用体验。这些机器使用频繁,因此在高负载下保持良好性能至关重要。一个好的 RPC 提供商应该可靠,具有一致的性能,并向最终用户公开可查看其使用模式的指标。

在 Helius,我们是 Solana 原生工程师,致力于为各种开发者提供最佳的 RPC 体验。

你可以免费开始使用,无需邮箱注册或信用卡,仅需两次点击 在这里

这本旨在为 Solana RPC 提供一个非常简洁和初学者友好的介绍。你很可能已经了解了很多这些信息。接下来,我们将讨论 RPC 的优化、注意事项和一些更高级的话题 — 感谢你的阅读!

  • 原文链接: helius.dev/blog/how-sola...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Helius
Helius
https://www.helius.dev/