本文介绍了RPC在区块链应用中的重要性,特别是在Solana平台上的应用。详细讨论了RPC与API的区别,Solana的主网和开发网RPC请求的示例,以及对比了Solana与以太坊在RPC节点的工作方式。文章还提到Helius作为一个提供高效RPC服务的公司,着重强调了开发者如何利用Helius的服务。
5分钟阅读
2023年9月1日
作为去中心化应用与区块链网络交互的重要组成部分,RPC是每个在这个快速发展的领域中导航的人都必须了解的内容。无论你关注的是Solana还是其他区块链平台,本指南将为你提供关于RPC在传统和区块链环境中的角色的基本见解。
在加密领域,所有你需要的数据都是链上数据。它是完全无权限的,任何人都可以查看和使用。那么你如何获取这些数据呢?通过RPC。
RPC — 虽然技术上代表远程过程调用(Remote Procedure Calls) — 通常作为RPC节点的简写。这些是参与区块链网络的节点,并暴露供开发者调用的方法(称为远程过程调用)。
在传统(web2)软件开发中,你通常通过与API的交互来获取所需的数据。你可能会使用Stripe API来处理支付数据,Twilio处理短信数据,Bloomberg获取金融数据,Plaid获取银行数据,等等。
这里需要注意的是,你所寻找的数据往往由中心化实体掌控。
这就是RPC发挥作用的地方。它们允许无需外部提供者就能以高效的方式向你提供无权限的数据。这是直接从调用账本获得的数据。
在传统与区块链环境中,RPC作为获取数据的一种方式,但相似之处往往到此为止。传统RPC运行在各种协议上,并与中心化数据库进行交互,需要对单个实体的数据完整性形成信任。另一方面,区块链RPC通常使用HTTP和JSON-RPC,从去中心化网络中提取数据,并通过在多个节点之间的数据验证提供更高的安全性。虽然传统RPC可能限制数据访问,但区块链RPC通常提供开放的公共数据。此外,区块链RPC,尤其是在像Solana这样的网络中,经过优化以满足去中心化应用的实时需求。理解这些关键差异可以指导你在区块链生态系统中与RPC的互动。
要从Solana区块链的主网Beta集群获取数据,你必须向参与该网络的RPC节点发出JSON-RPC请求。
一个典型的JSON-RPC请求可能如下所示:
代码
curl -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 } ] }
该请求向位于https://api.mainnet-beta.solana.com的RPC节点请求getBlock
RPC方法。当它收到这个请求时,它知道如何处理,因为它正在运行Solana区块链的软件客户端。
在实践中,没有人真的像这样直接使用JSON-RPC请求(虽然你当然可以!)。大多数开发者更喜欢使用RPC客户端。最常用的是Solana Web3 JS库,可以在这里找到。要查找Solana上可用的JSON RPC方法的完整列表,请查阅官方文档。
或者,你可以通过使用开发网RPC来访问Solana的开发网集群。Solana提供了一个用于测试的开发网RPC,位于https://api.devnet.solana.com。
我们的RPC请求将如下所示:
代码
curl [<https://api.devnet.solana.com>](<https://api.devnet.solana.com/>) -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 } ] }
唯一的改变就是所在的集群。如果在开发网上没有交易或信息,那么我们查询的账户可能需要更改。这是因为开发网集群不会共享主网Beta的历史。
为了正常运行,Solana需要一个分布式的节点网络来运行它的软件客户端。
这些节点可以分为两种类型:验证者和RPC。
这两种节点有一个重要的共同点:它们都持续观察区块链并存储其最新数据(或状态)。
然而,它们之间有一个关键的区别。
验证者是投票的节点(例如:“是的,这个区块是有效的”)并参与共识。
RPC是不会投票的节点 — 却处理与链上数据交互的请求。注意,这种配置在其他区块链如以太坊中并不常见,因为在以太坊中,验证者和RPC节点通常是同一个。
当你发出RPC调用时,你是在节点上调用一个正在参与区块链的过程或功能。由于它参加了网络,因此它知道最新数据是什么,并可以应请求向你暴露该数据。
Helius提供高端的RPC访问,为Solana上的开发者提供许多好处。
Helius RPC由高端硬件驱动,确保你的应用能够可靠地达到最佳性能,不会出现问题。我们自豪地拥有生态系统中最好的24/7开发者支持。当你的系统遇到意外问题或你对即将推出的功能有疑问时,我们会立即提供帮助。
RPC极其重要 — 没有它们,你将无法与区块链进行交互。因此,一些公司专注于完善RPC体验。这些机器的利用率非常高,因此它们在高负载下的表现至关重要。好的RPC提供者应该可靠,具有一致的性能,并暴露度量供最终用户查看他们随时间变化的使用模式。
在Helius,我们是Solana本地的工程师,致力于为各种类型的开发者提供最佳的RPC体验。**你可以在这里免费开始,无需电子邮件注册或信用卡,仅需两次点击这里。
这是一份非常简短且适合初学者的Solana RPC介绍。你可能已经了解了相当多的信息。接下来,我们将讨论RPC优化、注意事项以及一些更高级的话题 — 谢谢你的阅读!
- 原文链接: helius.dev/blog/solana-r...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!