本文介绍了在加密领域中RPC(远程过程调用)的作用及其在Solana区块链上的具体实现。文章阐述了RPC节点与验证者节点的区别,以及如何通过JSON-RPC请求与Solana RPC节点交互,获取链上数据,适合初学者了解Solana的RPC工作方式。
3 分钟阅读
2023 年 3 月 24 日
在传统的 (web2) 软件开发中,你通常通过与 API 进行交互来获取所需的数据。你可能会使用 Stripe API 来处理支付数据,使用 Twilio 来获取短信数据,使用 Bloomberg 来获取金融数据,使用 Plaid 来获取银行数据,等等。
有趣的是,你所寻找的数据通常由集中实体封锁或控制。
在加密世界中,你所需的所有数据都在链上。它是完全无需许可的,任何人都可以查看和使用。那么,你如何检索这些数据呢?通过 RPC。
RPC — 虽然技术上代表远程过程调用(Remote Procedure Calls) — 通常用作 RPC 节点的简写。这些是参与区块链网络并公开方法(称为远程过程调用)的节点,开发人员可以调用这些方法。
为了使 Solana 正常运作,它需要一个分布式的节点网络来运行其软件客户端。
这些节点可以分为两类:验证者(Validators)和 RPC。
这两类节点有一个重要的共同点:它们都持续监视区块链并存储其最新数据(或状态)。
然而,它们之间有一个关键的区别。
验证者是投票的节点(例如:“是的,这个区块是有效的”)并参与共识。
RPC 节点则不投票 — 但处理与链上数据打交道的请求。
这种配置在其他区块链中并不常见,例如以太坊,其中验证者和 RPC 节点通常是同一个。
当你发起 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 提供商应该可靠,具有一致的性能,并向最终用户公开可查看其使用模式的指标。
在 Helius,我们是 Solana 原生工程师,致力于为各种开发者提供最佳的 RPC 体验。
你可以免费开始使用,无需邮箱注册或信用卡,仅需两次点击 在这里 。
这本旨在为 Solana RPC 提供一个非常简洁和初学者友好的介绍。你很可能已经了解了很多这些信息。接下来,我们将讨论 RPC 的优化、注意事项和一些更高级的话题 — 感谢你的阅读!
- 原文链接: helius.dev/blog/how-sola...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!