如何在 Solana 上完成交易

使用 Solana 探索区块链的演变,重点关注在繁忙网络中实现更快交易的优先费。

如何在 Solana 上完成交易
如何在solana上完成交易

Solana 是最受欢迎的区块链生态系统之一,在过去几个月中使用量呈爆炸式增长。在最近人气激增的过程中,我们发现优先费存在很多混乱。 QuickNode 团队专注于研究和分享清晰、有效的费用管理方法,以提高 Solana 网络上的交易成功率。

使用这些方法,我们能够在非常繁忙的网络条件下完成数千笔交易中超过 98% 的交易。

交易结算

Solana 上的交易由验证器处理。按照预定的时间间隔(称为“插槽”),选择验证者作为该插槽的“领导者”。这个领导者负责处理交易,将它们打包成一个块,并向网络提议这个块。

当您通过 QuickNode 等 RPC 提供商提交 Solana 交易时,该交易将根据公开的领导者时间表广播给当前插槽的领导者。领导者验证交易,如果有效则执行它,并将其包含在该插槽的块中。然后该区块由网络中的其他验证者通过共识过程进行确认。

交易费用

交易费用是一种机制,旨在补偿验证者处理交易和维护网络完整性所需的计算资源。

目前所需的基本费用为 5000 灯。除此之外,用户还可以为其交易添加优先费。

优先费用

Solana上的优先费用是用户可以支付的可选附加费用,以增加其交易被快速处理的机会,尤其是在网络拥堵时。与基本交易费用不同,基本交易费用补偿了处理交易的计算工作量,优先费用实质上是加速处理的竞标。用户在基本费用之上指定此额外费用,以表明其交易的重要性或紧急性。

该系统创建了一个竞争环境,其中具有较高优先级费用的交易更有可能被验证者选择并在其他交易之前进行处理,从而促进更快的确认时间。优先级费用是局部化的,这意味着它们根据您正在交互的程序而变化。如果在任何特定时间,某个热门程序的铸造或某个特定去中心化交易所的交易需求很高,那么这些特定的Solana程序的优先级费用可能会更高。

你必须付费才能玩

在最近的情况下(截至 2024 年 3 月撰写本文时),我们发现如果没有正确设定费用,交易几乎没有机会最终完成。

但不要相信我们的话!这是说明这一点的图表。我们发送了 10 批,每批 100 笔交易,均设置了正确的费用,并且没有优先费用。蓝线没有设置优先费用,橙色线通过我们的QuickNode SDK 的辅助函数正确设置了费用(稍后会详细介绍)。

差异是显而易见的。在这些情况下,您需要设置优先费用,并且需要正确设置它们才能完成交易。

坚持预算

开发人员可以为优先费用设置两个变量:计算单元限制和计算单价,它们都是计算预算的一部分。交易的总费用是通过将交易所需的计算单元数量乘以当前计算单元价格以及任何适用的基本费用来计算的。

  • 计算单元限制:这是指单个事务可以消耗的最大计算单元数。 Solana 为事务中的每个操作分配计算单元,作为量化所需计算工作的一种方式。 CU限制确保任何单一交易都无法垄断网络资源,保持区块生产的公平性和效率。超过此预算的交易将被拒绝,开发人员需要仔细优化以确保其交易符合允许的 CU 预算。
  • 计算单价:这是与执行交易相关的成本,按计算单元衡量。该价格决定了用户为其交易所需的每个计算工作单位支付的费用。随着网络拥塞情况发生变化,计算单价也会发生变化,反映任何给定时间对处理能力的需求。

交易技巧

我怎么知道要设置什么?乍一看并不容易,但不用担心,我们会帮助您!

  • 计算单元限制,您需要指定计算单元限制以匹配您的交易实际需要。您可以查看区块浏览器上先前类似交易消耗的计算单元并将其设置为该数量,或者您可以对您的交易使用simulateTransaction RPC 方法并查看模拟交易消耗的计算单元。您可能会问自己,为什么我不能设置一个较高的计算单元限制而不用担心它?好吧,精明的读者,这不仅过于昂贵,而且实际上适得其反。除了每笔交易之外,还有每个账户和每个区块的计算单元预算。您的交易填充这些计算单元预算的越多,验证器可以接受的交易就越少,这意味着您的交易更有可能被丢弃。
  • 计算单价,根据网络需求和本地节目需求不断变化。 Solana 提供了一个 RPC 方法getRecentPrioritizationFees,它返回最近的优先级费用。我们观察到这种方法的实际应用可能具有挑战性,因为它往往过度简化当前的费用市场。这就是我们在 QuickNode 市场中创建Priority Fee API 插件的原因。这会根据最新的费用数据返回每个计算单元和交易的优先费用的详细细目。我们有Solana 优先费跟踪网站,其中包含最新的优先费数据,以便快速浏览 Solana 优先费跟踪。

有关更多详细信息和代码示例,我们有如何提高 Solana 交易性能指南。

我已经不知所措了,就让它变得简单吧

我们懂了!您只想完成您的交易。我们向QuickNode SDK添加了 Solana 支持和sendSmartTransaction函数。这会模拟您的交易,设置计算单位限制,然后从我们的Priority Fee API 插件中获取最新的优先费用数据,并根据结果设置计算单价。您只需调用一个函数,然后坐下来,一边喝咖啡,一边让验证器接收您的交易。

我们使用此功能进行测试,并且在非常繁忙的网络条件下始终看到超过 98% 的交易最终完成了数千笔交易。

总而言之

Solana 交易可以通过优先费发送,以增加交易在区块中完成的机会。在网络极其繁忙的情况下,发送交易时大多需要优先收费。作为开发人员,您可以在交易中指定两个关键参数,以向验证者表明您的优先费用偏好:计算单元限制和计算单价。

为了帮助开发人员方便地设置这些内容,QuickNode 创建了优先费 API插件和 SDK 功能,例如sendSmartTransaction,使在 Solana 上设置优先费变得更加容易。

💡
原文链接:How to get your transactions finalized on Solana
本文由SlerfTools翻译,转载请注明出处。

SlerfTools专为Solana设计的工具箱,致力于简化区块链操作,提供无编程全可视化界面,使发币管理流动性无代码创建Dapp等复杂过程变得安全简单。