Solana RPC 的工作原理

Solana RPC 的工作原理

原文链接:https://www.helius.dev/blog/how-solana-rpcs-work

什么是加密中的 RPC?

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

这里需要注意的有趣事情是,您正在寻找的数据通常由中心化实体控制。

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

RPC(虽然在技术上代表远程过程调用)通常用作 RPC 节点的缩写术语。是指参与区块链网络并公开开发人员可以调用的方法(称为远程过程调用)的节点。

RPC 如何在 Solana 上工作?

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

这些节点可以分为两种类型:验证者和 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 优化、注意事项和一些更高级的主题——感谢您的阅读!

相关推荐

  1. ChatGPT工作原理

    2024-07-09 17:08:08       63 阅读
  2. 无人机工作原理

    2024-07-09 17:08:08       14 阅读
  3. 解析:Eureka工作原理

    2024-07-09 17:08:08       50 阅读
  4. FTP服务器工作原理

    2024-07-09 17:08:08       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 17:08:08       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 17:08:08       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 17:08:08       57 阅读
  4. Python语言-面向对象

    2024-07-09 17:08:08       68 阅读

热门阅读

  1. 音频demo:使用faad2将AAC数据解码出PCM数据

    2024-07-09 17:08:08       24 阅读
  2. SQLAlchemy配置连接多个数据库

    2024-07-09 17:08:08       29 阅读
  3. Android C++系列:Linux常用函数和工具

    2024-07-09 17:08:08       23 阅读
  4. vb.net读取mssql的image字段后,如何转换成二进制

    2024-07-09 17:08:08       29 阅读
  5. 常用 Android 反编译工具apktooldex2jarenjarifyjd-guijadx

    2024-07-09 17:08:08       23 阅读
  6. Android Gradle 开发与应用 (十): Gradle 脚本最佳实践

    2024-07-09 17:08:08       27 阅读
  7. 牛客周赛 Round 50

    2024-07-09 17:08:08       36 阅读
  8. 量化机器人如何提高投资效率?

    2024-07-09 17:08:08       25 阅读
  9. Emacs相关

    2024-07-09 17:08:08       30 阅读
  10. 细水长流:SKlearn中模型的增量训练实践

    2024-07-09 17:08:08       28 阅读
  11. 论如何搭建属于自己的服务器?

    2024-07-09 17:08:08       23 阅读
  12. RabbitMQ实现延迟消息

    2024-07-09 17:08:08       45 阅读
  13. 【数据挖掘】银行信用卡风险大数据分析与挖掘

    2024-07-09 17:08:08       24 阅读