You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTezos中fill()、autofill()方法执行速度缓慢的原因是什么

PyTezos fill()/autofill()方法耗时较长的原因

这两个方法确实会主动请求Tezos节点,并非纯本地计算,核心原因如下:

  • 链上动态参数拉取
    手续费计算需要的当前区块基准费率、链上gas上限、存储费率、交易发送地址的最新counter值等参数,都是随链出块动态更新的,没有办法在本地静态计算得到,必须通过节点RPC接口拉取最新值才能保证交易合法。
  • 交易模拟执行逻辑
    默认配置下,两个方法都会调用节点的run_operationRPC接口完整模拟交易上链执行的全过程,一来可以准确计算交易实际消耗的gas、存储占用,避免手续费给多或者给少导致交易失败,二来可以提前校验交易逻辑是否合法,避免无效交易上链白白损失手续费。这个模拟步骤必须依赖节点的全量链上状态,本地没有对应数据无法完成。

你提到的「仅通过请求大小预估手续费」的方案仅能计算交易的基础手续费部分,而Tezos交易手续费还包含和执行逻辑强相关的gas费、和链上存储占用相关的存储押金两部分,这两部分和交易包大小没有直接关联,无法在本地仅凭交易结构估算得到准确值。

  • 性能优化方案
    如果你可以提前确认交易的gas上限、存储上限、当前地址的counter值,可以在调用方法时手动传入对应参数并关闭模拟:autofill(gas_limit=你的预估值, storage_limit=你的预估值, counter=你的预估值, simulate=False),即可跳过节点请求步骤,实现本地快速填充,但需要自行承担参数错误导致的交易失败风险。

内容的提问来源于stack exchange,提问作者Ezriel_S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:06:02