基于 Solana 的构建:Helius RPC + 教程(Solana 开发平台)— 第 1 部分
我最近为云工程师发布了 Solana 区块链概述,这引起了那些对区块链感兴趣的人的兴趣。
云计算开发人员正在深入研究 Solana,他们受到黑客马拉松、初创企业、人工智能代理、去中心化金融(DeFi)的活动以及Solana 生态系统中快速创新步伐的吸引。
本教程系列探讨了构建者如何利用 RPC 平台在 Solana 区块链上创建强大的应用程序。
我们将深入了解领先的 Solana RPC 提供商 Helius,并掌握将 RPC 集成到 Solana 应用程序的艺术。
基础知识:什么是 RPC?
RPC 是 Solana 开发人员的重要组成部分。我们将进行更详细的介绍,但本节旨在帮助您熟悉相关术语。
- “RPC” 是“远程过程调用”,是开发人员用来与 Solana 等区块链进行通信的一种特殊类型的 API 协议。
- “RPC 节点”是运行 RPC 协议的服务器。这些节点是允许开发人员向区块链发送请求并以可预测的结构化格式接收响应的中介。
- “JSON-RPC” 是 Solana 上用于与区块链通信的一种特定类型的 RPC 协议。
- 开发人员使用 JSON-RPC向 RPC 节点和区块链发送特定的“方法”请求, 例如获取帐户余额或进行交易。然后他们收到JSON格式的响应。这是您的应用程序和Solana 区块链之间通信所必需的。
- RPC“方法”就像执行特定任务的函数名称。开发人员包括必需和/或可选的输入变量,并接收一致的输出格式响应。
- 您可以使用 HTTP 方法或 Websocket。HTTP 始终使用 POST,最适合单个请求。使用 Websocket 进行双向订阅和实时事件。
- Solana RPC“端点”类似于您可能在 REST 或 GraphQL API 中使用的“基本 URL”。
- 端点因您使用的 Solana 环境而异,例如 devnet(用于开发人员)、testnet(QA)和 mainnet-beta(实时生产 Solana 区块链)。此外,如果您使用 RPC 提供商的服务,则RPC 提供商会要求您替换他们的 RPC 提供商 URL。
HTTP JSON-RPC 请求的示例(示例显示使用 CLI 中的 cURL):
|
|
您可能之前使用过“API 网关”。 它是云平台堆栈中一种常见的 API 管理服务,使用 HTTP REST、WebSockets 或 GraphQL 等 API 协议。
- 像 Helius 这样的“RPC 提供商” 类似于用于连接到区块链的 RPC 请求、节点和方法的 API 网关。
- Solana RPC 提供商的目的类似于云 API 网关提供商的角色。 他们提供云平台来增强性能、可靠性、可扩展性,并为开发人员提供额外的工具。他们收取使用费和高级服务费。
领先的 RPC 服务提供商(如Helius、Alchemy、QuickNode等)提供了开发人员友好的平台,让使用 Solana 的 JSON-RPC 协议更加容易。这就是为什么您应该使用这些服务商,而不是直接使用 Solana。
Solana RPC 提供程序示例:
“那么,我必须使用 RPC 提供程序吗?”…从技术上讲 — — 不,对于小型应用程序来说不是。
但不这样做是个糟糕的选择,因为存在重大限制,会严重影响您的开发体验和应用性能。如果没有提供商,您将面临性能、扩展、附加功能、可靠性、正常运行时间和成本效率方面的限制。
RPC 提供商平台优化了连接性 — 这样您就可以专注于构建出色的应用程序。它们运行节点(处理和扩展 RPC API 请求的特殊服务器),以提高性能并提供特殊功能来增强您的 Solana 请求。
此外,Helius、Alchemy、Moralis 和 QuickNode等平台还提供额外的教程、博客文章和其他 API 相关工具(包括针对其他区块链的工具),并且可能为入门级 Solana 开发人员提供资源。
在这篇评论中,我们将重点关注Helius,查看概述、工具和教程。
完成后,您将对如何使用此平台和 Solana RPC 有深入的了解。 如果您需要更多常规信息,还请查看我的Solana 概述。
第 1 部分 - Postman、Node.js 概述 + 基础教程
- 介绍
- 关于Helius
- 有关 RPC 节点的更多信息
- 其他数据服务
- Helius 入门(免费注册)
- 仪表板概述
- 基本 RPC 设置
- Helius Test Drive 工具 (网页)
- Helius Test Drive 工具(本地、开源存储库)
- Solana RPC 方法列表
- Solana RPC 扩展 DAS API 方法列表
- Postman:入门(免费)/工作区设置(可选)
- Postman:Solana RPC 端点的 Postman 集合
- Postman 的基本 Solana RPC 请求
- Solana RPC 与 Helius,cURL 教程
- Node.js 教程中的基本 Solana/DAS RPC 请求
- Typescript 教程中的基本 Solana/DAS RPC 请求
第 2 部分 - 更多高级 RPC 教程(即将推出)
下一教程将涵盖的主题(第 2 部分)
- Solana RPC 通过 Helius 从具有自动化基础设施的云 Lambda 进行。
- Helius Webhooks 对 Solana 的请求
- Helius Enriched API 请求。
- Helius 前端代理
- 后端 Solana RPC 请求的用例
- Solana 的 Webhook 用例
- 后端 Solana RPC 请求的用例
- 其他数据服务
注意:我与 Helius 没有任何关系,而且它不是付费的,也不是赞助的。我使用 Helius RPC 提供商,因为我曾与它合作过,而且它享有良好的声誉,但您也可以找到其他提供商,例如 QuickNode 和 Alchemy!
关于Helius
Helius 一直走在改善RPC 和 Solana开发者体验的前沿,帮助初创公司和开发者快速上手为该链创建应用程序。您可能在 Crypto Twitter/X 上见过 Mert, 因为 他是最活跃/最受瞩目的 Solana 创始人/工程师之一。此外,去年我有幸在盐湖城的 MtnDAO会见了 Helius 联合创始人Nick和其他 Helius 员工,他们是一群热情、知识渊博、平易近人的人。
Helius 提供先进的Solana 开发平台,其中包含 RPC、API、Webhook 和数据流等工具,并由社区和/或客户服务选项提供支持。它针对可扩展和高性能应用程序开发进行了优化。
另外值得注意的是,Helius 是领先的 Solana 验证者之一,它使质押者和机构合作伙伴能够享受 0% 的费用和全额 MEV(最大可提取价值)奖励。
有关 RPC 节点的更多信息
如上所述,RPC 节点对于 Solana 而言就像 API 网关对于许多其他非 Solana 应用程序和云服务一样。
RPC 节点对于 Solana 交互至关重要。 它们允许应用程序读取和写入 Solana 区块链的数据。
作为 Solana 开发人员,您主要使用Helius 等 RPC 提供程序连接到 Solana 区块链以进行交易、信息查询和与链上应用程序交互。您获取响应并将其用于您的应用程序中。
Helius 和大多数提供商提供至少两种主要不同类型的节点。
- 共享 RPC 节点适用于较小的项目。这些节点基于使用量且有速率限制,专为中等要求的项目而设计,可平衡成本和性能。这将是免费或低成本计划。
- 专用 RPC 节点适用于高需求应用程序。它们提供无限请求和低延迟,是大规模用例的理想选择。
您可能还会看到提到的公共/私有端点。
- “公共” RPC将是Solana 的原生端点。这些 RPC 的“速率限制”非常低,以防止滥用高使用率。因此,它们不适合生产应用程序。
公共 RPC 端点,来源:https://solana.com/docs/core/clusters
- “私有” RPC是您为获得更高速率限制、更好的性能和可靠性而付费的。这些是 RPC 提供商提供的。
Helius 节点分布在全球,以提高效率:Helius 表示他们在纽约、新加坡、东京、法兰克福和其他关键地点设有节点,确保全球低延迟访问。
节点自动路由请求。系统将请求发送到最近的节点,确保共享 RPC 用户获得最佳性能。
使用 Helius“您可以锁定您的端点以仅为某些 IP 和域提供请求”,但是,特别是对于客户端应用程序,您可能需要代理您的请求以获得更好的安全性,因为您不想泄露您的密钥,因为您正在为使用付费。
Helius RPC 代理:有一个免费的 Github 一键部署开源 RPC 代理,您可以一键部署到 Cloudflare。
其他相关数据服务
Helius 还提供额外的数据服务,以使开发人员的工作更加轻松,以下是其中一些:
- 实时数据流选项。 开发人员可以使用 Geyser、增强型 Websockets 和标准 Websockets 等工具传输实时 Solana 数据。
- Geyser(“Yellowstone”)插件可 提供最快的 Solana 数据更新。“高度可配置的实时数据流。”它利用 Solana 的数据流,提供有关区块链事件的更新,例如添加新区块、处理交易或更改帐户状态。“Geyser 或 gRPC 流提供了将 Solana 数据直接传输到后端的最快、最有效的方式。使用 gRPC,您可以订阅区块、插槽、交易和帐户更新。”
- 增强的 Websockets 提供交易和账户更新,适用于非延迟关键型客户端应用程序。
- 标准 Websockets 需要重新连接处理才能 实现实时数据的双向通信,但需要强大的重新连接逻辑。
- Webhook 自动化事件通知:Webhook 支持 70 多种交易类型,可处理大规模交互,每个 Webhook 最多可处理 100,000 个地址。它们是自动化的理想选择,但不适合亚秒级延迟要求。
Helius 入门
- 转到Helius 主页,按钮“免费开始”或“开始构建”
- 使用电子邮件/密码、Google、Github 或您的 Solana 钱包注册
单击任一按钮即可开始 — https://www.helius.dev/
(可选,仅为付费计划连接 Solana 钱包) 如果您想使用 Solana 钱包注册付费版,如果您已经有一个,您可以这样做,但如果您想要免费计划,您仍然需要连接您的 Github/Google 帐户。
一旦您使用电子邮件/密码、Google、Github 登录,您将看到下面的价格图表。
- 我们从免费版本开始尝试一些演示,所以选择它。
- 点击下面的按钮开始构建
通过免费计划, 您可以获得“500K 积分、10 个请求/秒、1 个 API 密钥、1 个 Webhook、社区支持”。
如果您要构建一款主要处于开发阶段的基本新应用,或者尝试服务教程,则免费计划是最佳选择。 一旦您开始运行完整的应用,您可能希望至少升级到开发者选项,并且随着其他选项的推出,它们会提供更多选项/用途。
接下来,您将看到一个屏幕,显示他们正在构建您的工作区,大约需要 10-15 秒,然后您将看到Helius 仪表板。
🥰 感谢阅读!…🔥 请鼓掌并分享这篇文章,谢谢!🚀
概述 — Helius 仪表板
让我们看看这一切意味着什么。
- 调整仪表板显示 为全宽、半宽、中间等。
- 当前计划。 我们选择免费,但这将反映当前设置。
- 信用使用情况。 标准 RPC 调用为 1 个信用。请参阅信用使用情况文档。
- 项目名称/ID: 随机生成的名称/ID,直到您重命名。在免费计划中,您可以获得一个用户和项目,升级为一个团队。
- API 密钥。 免费计划会给您一个 API 密钥,其他计划会给您更多。您需要在对 Helius RPC 的请求中包含 API 密钥。
- 仪表板。 仪表板的首页,您从这里开始。
- 端点。 管理与 Solana 区块链数据交互的访问点。查看和配置项目的不同端点。
- API 密钥。 安全地生成和管理 API 密钥,用于验证和跟踪 Helius 服务的使用情况。确保每个项目都有其唯一的密钥,以便更好地控制。复制此密钥以满足您的要求。
- Webhook。 配置 webhook 端点以接收来自区块链的实时更新或通知。“Webhook 让您可以监听链上的事件并在这些事件发生时触发某些操作。Webhook 更改可能需要长达 2 分钟才能生效。”
- 专用节点(付费)。 设置和管理高性能专用 RPC 节点,专门用于处理大规模应用程序需求,不受共享流量干扰。“在我们全球任何数据中心位置订购带有可选 Geyser 插件的专用节点。”
- 使用情况。 监控您的服务使用情况指标,包括请求数、数据处理量以及 Helius 订阅的其他关键分析。已用信用、剩余信用、计费周期、 使用情况明细、RPC 指标(如果升级)
- RPC 测试。 直接在仪表板内测试和验证您的 RPC 调用。此功能可帮助开发人员调试和优化他们的 API 集成。使用各种方法并查看结果,例如 getAsset、getBalance 等。
- 计费。 查看订阅详情、管理付款方式并访问 Helius 帐户的账单。更改您的计划。
- 项目设置。 自定义单个项目的设置,例如重命名、调整配置。
- 系统状态。 检查 Helius 服务的实时运行状态和历史正常运行时间指标以及过去发生的事件,确保透明度和快速故障排除。
- 支持。 如有任何问题或疑问,请使用 Helius 访问客户支持资源。免费版可访问 Discord 和 Telegram 社区支持,付费版可访问额外的聊天资源。
- 文档。 探索深入的指南、参考资料和示例,以充分利用 Helius API、仪表板和工具。
- 核心服务:RPC(连接到 Endpoints 页面) — 开始使用 RPC,“查看 RPC URL、设置自动缩放首选项、购买预付费信用(用于加密计划)、Websockets:原生和增强版”
- 核心服务:Webhooks — 探索 Helius Webhooks 产品,“ 配置 webhook 端点、设置事件触发器、测试 webhook、监控 webhook 活动”
- 核心服务:丰富的 API — “ DAS Token API、DAS NFTs API、优先费用 API、交易 API、铸币 API、资产元数据 API”
基本 RPC 设置
您可能还记得, Solana 有可供连接的特定 RPC API 端点,我在我的另一篇 Solana 文章中对此进行了讨论。
您将用 Helius RPC 来替代它,因为它们的作用类似于您正在使用的 API 网关。
要在 Helius 上进行标准 RPC 调用,请使用这些 Helius 平台端点,而不是标准 Solana RPC 端点:
- 主网—
https://mainnet.helius-rpc.com
- Devnet —
https://devnet.helius-rpc.com
当您单击Helius仪表板上的“端点”页面链接时,您将看到类似这样的内容(我的 API 密钥已被删除)。
您还可以将开发端点切换到 Dev。
Helius Test Drive 工具
现在我们已经注册并获得了 API 密钥,我们可以利用 Helius 设置的丰富资源,轻松测试其所有 RPC 端点并获取数据。
它是一个名为Helius Test Drive的开源工具。
Helius 上的网站界面: https://testdrive.helius.xyz/
Helius repo 本地下载: https://github.com/helius-labs/test-drive
这是网站示例,您将在其中输入之前使用 API 密钥提供给您的端点,然后您可以测试可用的各种端点。
对于这个例子,因为我要查看主网上的一些内容,所以我将使用主网 api url,例如 https://mainnet.helius-rpc.com/?api-key=[your key]
让我们尝试一下getAccount方法。
我将查看WEN memecoin 公钥/帐号(我拥有少量的这种 memecoin,在本教程中您不需要拥有它,我们只是检查它的信息;这不是推荐或财务建议,如果购买 memecoin,请自行尽职调查,它们通常会归零)。
⚠️ 重要提示:不要将公钥(或公共密钥) 与您的秘密 API 密钥或钱包密钥混淆!公钥是公共地址,是区块链上的公共信息。秘密 API 密钥或秘密钱包密钥绝不能泄露。⚠️
我访问了SolanaFM网站,这是一个Solana 区块链浏览器,可以更轻松地查看交易、代币、区块和账户。
我在搜索栏中输入“wen”,然后出现了帐号(与公钥相同)。
请记住,Solana 代币是账户,地址是“公钥”。因此,在这种情况下,代币/合约地址/号码、账号和公钥是相同的。
另请注意,代币是由 Solana 程序创建的,但其本身不能像程序一样执行。当我们在下面查询有关代币的信息时,您将看到此处提到的创建代币的程序:“owner”:“TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA”,
我们想要的代币地址恰好是列表中的第一个:“WENWENvqqNya429ubCdR81ZmD69brwQaaBYY6p3LCpk”
⚠️ 请注意,还有几个其他列表,请确保您使用的是正确的列表。始终验证您使用正确的令牌/公钥进行交易。有些骗局会试图诱骗您向冒名顶替者汇款。
如果您不确定正确的,您还可以通过其他来源(如CoinGecko或 Jupiter(Solana 上最大的 DEX 或交易交易所))验证合约/帐号。
✅ Wen CoinGecko 公钥:WENWENvqqNya429ubCdR81ZmD69brwQaaBYY6p3LCpk
CoinGecko 显示代币/合约,复制/粘贴以确认
参见:SolanaFM 中的“Jupiter 验证”表明它是经过 Jupiter 验证的代币
如果您点击 wen 的第一个条目,SolanaFM 页面上会显示“Jupiter 已验证”。Jupiter 会验证其平台上允许的一些代币,以防止名称相似的代币造成混淆,因此,尽管这本身并不意味着 100% 就是您想要的代币,但它是一个指标。
- 当我选择 getAccountInfo 时,会打开更多信息和一个输入。
- 我输入了Wen 合约/账号作为公钥输入。您可以更改其他参数,但我们不需要。请注意,如果您发出请求,那么您也可以使用可选参数。
✅在这里我们看到请求的输出:
|
|
我非常喜欢的一个功能是你可以向下滚动并获取
- 请求架构
- 响应架构
- CLI 代码示例
这作为一个例子很有用,但是我们正在执行的这个特定查询并没有告诉我们太多信息,所以让我们看看一种不同的方法——我把它改成了方法getAsset。
需要理解的是,getAsset 是原始 Solana RPC 方法的扩展方法。它使用Solana 的 DAS API(数字资产标准 API), 这是一种更高效、更详细地查询 Solana 数字资产的服务。
它返回大量有关代币的额外元数据。这告诉我这是一个可替代代币(就像一个有很多代币的硬币)。它不是 NFT,NFT 是不可替代的(独一无二的)。
|
|
您从中获取的很多信息都很有用,例如代币是否“冻结”或创建者是否可以增加供应量(通常对价格不利)。不过,本文不打算全部了解这些内容。
当你访问 Dexscreener或 CoinGecko 时, 它可能会获取其中一些元数据并将其添加到硬币的配置文件中。
注意“price_per_token”
|
|
根据 CoinGecko 的说法,这是正确的
Helius 测试驱动 — 本地、github 存储库(开源)
该仓库位于:https: //github.com/helius-labs/test-drive
在本地克隆 repo(需要node):
|
|
更改目录:
|
|
安装依赖项:
|
|
开始:
|
|
- 导航到http://localhost:5173
- 访问 Helius RPC Test Drive Playground 应用程序。
Solana RPC 方法列表
这些是可用的方法。Solana HTTP RPC
来源:https://solana.com/docs/rpc/http/getaccountinfo
- getAccountInfo:检索有关特定帐户的详细信息。
- getBalance:获取 lampors(SOL 的最小单位)中特定账户的余额。
- getBlock:根据区块槽号获取已确认区块的详细信息。
- getBlockCommitment:获取特定块的承诺信息。
- getBlockHeight:检索节点当前的块高度。
- getBlockProduction:获取有关当前或前一个时期的区块生产的信息。
- getBlockTime:获取区块的预计生产时间。
- getBlocks:检索两个插槽号之间已确认的区块列表。
- getBlocksWithLimit:获取从给定槽开始的已确认块的列表,受指定数量的限制。
- getClusterNodes:获取参与集群的所有节点的信息。
- getEpochInfo:检索有关当前时代的信息。
- getEpochSchedule:获取纪元计划,详细说明时段和纪元结构。
- getFeeForMessage:估算给定消息的费用。
- getFirstAvailableBlock:获取账本中第一个可用区块的槽位。
- getGenesisHash:检索分类账的创世哈希。
- getHealth:检查节点的健康状态。
- getHighestSnapshotSlot:获取有快照的最高插槽。
- getIdentity:获取当前节点的身份公钥。
- getInflationGovernor:检索当前通货膨胀调节器参数。
- getInflationRate:获取当前通货膨胀率、当前时代。
- getInflationReward:获取地址列表的通货膨胀奖励。
- getLargestAccounts:按 Lamport 余额获取最大账户的地址。
- getLatestBlockhash:检索最新的区块哈希。
- getLeaderSchedule:获取某个时代的领导者时间表。
- getMaxRetransmitSlot:获取从重传中看到的最大槽。
- getMaxShredInsertSlot:检索从 Shreds 中插入的最大插槽。
- getMinimumBalanceForRentExemption:计算账户免征租金所需的最低余额。
- getMultipleAccounts:在单个请求中获取有关多个帐户的信息。
- getProgramAccounts:特定程序拥有的所有帐户。
- getRecentPerformanceSamples:获取最近的性能样本列表。
- getRecentPrioritizationFees:获取最近的优先费用。
- getSignatureStatuses:获取签名列表的状态。
- getSignaturesForAddress:涉及地址的交易的确认签名。
- getSlot:获取节点正在处理的当前插槽。
- getSlotLeader:获取当前 slot 领导者。
- getSlotLeaders:检索一系列插槽的插槽领导者。
- getStakeMinimumDelegation:获取最低质押委托金额。
- getSupply:获取有关 SOL 总供应量的信息。
- getTokenAccountBalance:检索代币账户的代币余额。
- getTokenAccountsByDelegate:获取与代表关联的代币账户。
- getTokenAccountsByOwner:获取特定帐户拥有的 SPL 令牌帐户。
- getTokenLargestAccounts:检索特定代币类型的最大账户。
- getTokenSupply:获取特定 SPL 代币的总供应量。
- getTransaction:返回已确认交易的交易详情
- getTransactionCount:从分类账返回当前交易计数。
- getVersion:获取节点当前的软件版本。
- getVoteAccounts:当前银行所有投票账户的账户信息和相关股份。
- requestAirdrop:请求将 lampor 空投到特定地址(仅在测试网络上可用)。
- sendTransaction:向网络提交已签名的交易。
- mockTransaction:模拟交易以查看其效果而无需广播它。
注意: 这是除核心 RPC 方法之外的API扩展,有些可能无法与某些提供程序一起使用。
- getAsset: 压缩/标准资产的元数据信息
- getAssets: 单个请求中多个资产的元数据
- getAssetProof: 特定资产的 Merkle 证明
- getAssetProofs: 多种资产的 Merkle 证明
- getAssetsByAuthority: 特定机构控制的资产
- getAssetsByCreator: 指定创建者创建的资产
- getAssetsByGroup: 使用自定义组标识符的资产,即集合
- getAssetsByOwner: 特定钱包地址拥有的资产
- getAssetSignatures: 指定压缩资产的交易签名
- getTokenAccounts: 列出指定 mintAddress 或 OwnerAddress 的代币账户和余额
- getNftEditions: 指定主 NFT 的版本 NFT 的详细信息
- searchAssets: 搜索符合特定参数的资产
我们将更详细地探讨这些内容。有些内容可能对您来说还不太明白,而许多内容仅在特殊情况下才需要。上述结果中提供的所有元数据都可用于了解有关令牌的更多信息。
接下来我们将使用Postman进行一些RPC测试。
为什么要使用 Postman? Postman 是一款功能齐全的 API 测试套件,包括协作和 API 集合。虽然 Helius Test Drive 工具很棒,但我们可能需要企业应用程序的附加功能。
在忽略 Postman 部分之前,请注意,您可以以 Postman 集合的形式获取 Solana RPC 端点的完整集合。这确实很有价值,而且可以节省时间。
因此,我建议继续使用 Postman 部分。我稍后也会提到它。不要错过!
Postman 工作区设置(可选)
我建议使用Postman 或其他 API 客户端进行测试。
你们当中的许多人可能都使用过 Postman。
Chrome 或 IDE 中有一些轻量级选项,但如果您没有这些, Postman就很棒,并且是一个很好的入门方式。它可以处理您的应用程序可能使用的各种场景(各种类型的 API、协作)。
- Postman 提供了一个用户友好的界面,可以快速设计、测试和调试 API,而无需大量的编码知识,使其成为开发人员和 QA 团队的理想选择。
- 团队可以通过共享集合、环境和自动化测试来有效协作, 确保开发和测试的一致性。
- 它与 GitHub、Jenkins 和 Slack 等工具集成,允许您实时监控 API 的性能和可靠性。
免费注册 Postman: https://www.postman.com/
⚠️ 安全注意事项:如果要进行涉及电子商务、支付、银行等的生产/大容量应用程序,为了获得额外的安全性,最好不要在没有额外加密措施的情况下存储 API 密钥。这是 Devnet 上的测试演示,之后我将删除 API 密钥,因此我们只使用Postman 云的正常加密默认值。
我们将快速设置 Postman并开始使用 Helius RPC。
让我们创建一个工作区。这将为我们提供一个空白区域,我们将在其中放置所有 RPC 调用。
✅ 去创建一个工作区,你可以在“工作区”选项卡 >“空白”>“下一步”下找到它,如下图所示。转到此处:https://web.postman.co/workspace/create
下一步后,创建工作区的第 2 页
现在点击 “创建”按钮 后我看到的是:
🥰 感谢阅读!…🔥 请鼓掌并分享这篇文章,谢谢!🚀
Solana RPC 端点/方法的 Postman 集合
https://www.postman.com/explore
您可以使用上面的 URL 和 API 网络搜索 Solana 端点集合。此外,我还找到了一个,并将其 URL 放在了此图下方。
由 Blocktech Solutions 提供
注意:这是 Postman API 网络上的公共 API 端点集合。 如果使用它, 请自行尽职调查以确认其安全性和您所需的内容。文档提供了制造商的 X.com 地址以及有关它的其他文档。
此 Solana RPC 方法 Postman 集合使您能够快速测试 Solana RPC 方法 。默认情况下,这些集合使用 Solana Foundation 的公共 Mainnet Beta RPC 端点。此端点的速率受到限制,并且某些方法由于其滥用潜力而被列入黑名单。
您可以将集合变量 _solRpcEndpoint 更新为另一个提供商的 URL”。
这是关键部分。我们将使用 Helius 端点。
这将使我们使用 Helius 帐户来测试 Solana 端点。
您可以在此处看到该变量:
然而,我们要做的就是将这个公共集合分叉到我们的工作区中。
- 单击“创建分叉”选项卡。
- 在“Fork Label”下将其重命名为您想要的名称,然后
- 选择您想要它在哪个工作区中。
- 单击分叉按钮后,可能需要一分钟左右才能完成
⚠️ 确保您处于 Collection 中而不是 Environment 中 —— 第一次我不小心只分叉了环境。
确保您处于收藏 > Fork 收藏中
您还可以指定环境。⚠️ 有一次我意外地单独做了这件事!如果您首先只执行环境,则集合将不会显示。
对于环境,进入公共 API 上的环境并分叉(仅在需要时):
分叉的集合将显示在“环境”下
现在点击你的工作区>环境
您现在可以看到,我的 Postman Workspace“Helius RPC”中拥有所有方法。
我的工作区“Helius RPC”。
我现在将用我的 Helius 端点替换 _solRpcEndpoint。
您还可以将您的 API 密钥放在单独的变量中并确保任何额外的加密(查看有关如何操作的文档),我正在使用一个临时 API,该 API 将在此后被删除,所以我不会在这里这样做。
- 所以现在我要单击方法列表中的 getAccountInfo 方法(记住,我们分叉了集合,所以它在我的工作区集合中)
- 选择“Body”选项卡,它将显示随请求一起发送的参数。这些参数设置在变量中(见下文,完整请求)。我们需要将变量更改为 Wen meme 币合约。
- 双击该变量,将出现右侧的“请求中的变量”
- 添加 Wen meme 币的公钥。
完整请求:
- ✅ 现在点击蓝色的“发送”按钮来发送请求
它返回:
✅恭喜!🎉
您正在使用 Postman 通过 Helius RPC 提供程序调用 Solana 区块链!
你可能会问—— “好吧,很棒,但那又怎样?”
Postman 的好处:
- Postman 可以轻松编写和测试 Solana RPC 请求。
- 无需为基本方法测试设置完整的开发环境 来获取有关请求和结果的基本信息。
- 使用并构建 常见 Solana RPC 方法的可重用请求集合(就像我们所做的那样)。使用 DAS API 添加更多类似请求。
- 共享并签入 Github 自定义集合或环境。
- 快速测试单个 RPC 调用并检查响应 中是否存在错误或意外数据。
- 自动保留请求/响应历史/日志。
- 使用 Postman 的预请求脚本和测试自动化 Solana RPC 工作流程。
- 轻松 在 Postman 界面中调整环境、参数和标头以排除请求故障。
- 保存并组织 可重复调试工作流程的请求。
Solana RPC 与 Helius,cURL 教程
您可以从终端命令行 (CLI) 使用cURL 来测试请求和结果。如果您不确定是否已安装,MacOS 和 Linux 通常会自动安装,Windows 可能也会自动安装:cURL 安装提示
有一种简单的方法可以 从 Postman 获取 cURL 代码和请求的其他代码片段。
在 Postman 界面中单击代码片段按钮,然后找到 cURL。
现在它将为您提供要运行的代码片段:
|
|
再次,我们使用Wen 合约公钥: “WENWENvqqNya429ubCdR81ZmD69brwQaaBYY6p3LCpk”
结果:
✅ 这很酷,但我想使用 getAsset 方法。但是,这是 DAS API 扩展的一部分,虽然我们可以用 Helius 调用它,但它不在集合中,所以我们必须添加它。
我去了 Metaplex DAS 页面并复制并粘贴了部分 cURL 请求示例: https: //developers.metaplex.com/das-api/methods/get-asset
我们在 Postman 中提出一个新请求,然后将该请求复制粘贴到 Body中。
我已将“新请求”部分重命名为“getAsset”,现在它出现在集合的方法列表中。
回顾一下它看起来应该是什么样的:
cURL
|
|
Solana RPC 与 Helius,Node.js 教程
现在让我们创建一个简短的 Node.js 脚本,将其集成到我们的应用程序的后端,并使用 Helius 端点调用 Solana。
现在我们知道可以使用 Postman 获取代码片段,我们可以通过在本地执行快速 Node.js 脚本来“作弊”。
您可以将其放置在本地的任何地方,但我喜欢在 Github 上快速创建一个新的空仓库,在本地克隆它,然后在那里执行。所以我会这样做。
但无论你想做什么,我都建议遵循 Node.js 打字稿设置。
Github/本地仓库设置
在本地克隆仓库
|
|
让我们使用 Axios 库来处理请求,这样我们就可以在 Postman 中找到它来快速完成此操作。当然,你也可以使用其他库,这个很快,而且我经常使用 Axios 😁
|
|
确保您位于工作代码目录中,并安装 npm 和 axios。
|
|
然后创建一个 Node.js 文件并将上面的代码放入其中 - 确保添加您的 API 密钥。
|
|
复制粘贴上面的代码。
⚡️现在我们要运行它:
|
|
虽然它打印出来了,但只是一堵文字墙。
让我们让它看起来更“漂亮”。用axios.request(config)
以下内容替换以开头的代码部分。这将打印出来,使其看起来很漂亮,您可以更好地看到信息:
|
|
⚡️再次运行
|
|
✅结果:
|
|
Typescript 版本
太棒了,我们让它工作了,但最佳做法是在 TypeScript 中实现它。
让我们重写 Typescript 的代码。
安装 typescript 库
|
|
最新版本的 axios 应该包含类型。我正在使用 “axios”: “^1.7.9”
安装 ts-node
|
|
初始化tsconfig.json
文件:
|
|
.tsconfig 文件应该是这样的:
|
|
创建 src 目录
|
|
创建一个新的 typescript 文件:
|
|
⚡️现在运行它,你应该得到结果。
这是如果你只在本地安装了 ts-node。但是,如果你全局安装了它,则可以保留npx ts-node getAsset.ts
|
|
🚀 您应该会获得与常规 javascript 中之前相同的结果!
回到 Helius 仪表板,我可以看到我提出了一些请求,单击菜单的“使用情况”选项卡:
请注意,您可以通过付费计划获得更多指标:
我们将在第 2 部分中进一步探讨这一点 - 我们将设置一个 AWS Lambda,以便我们可以远程运行、使用 Webhooks 和增强 API、查看更深入的用例等等!