Candy Machine上传资产写入索引报错 如何重试失败交易
报错性质判断
两类报错均不属于用户操作失误导致的可控问题,核心诱因是Solana链上网络状态、RPC节点服务稳定性问题:
Blockhash not found报错是因为交易提交到RPC节点后排队时间过长,节点缓存的区块哈希已经过期,交易无法被打包,和本地资产、Bundlr存储流程无关- 交易60秒未确认报错是RPC节点响应延迟、链上交易拥堵导致交易超时,此时工具无法判定交易最终状态,会标记对应索引段为待重试
此前已经完成的资产打包、Bundlr缓存存储环节的进度不会丢失,不需要担心已上传的资产失效。
提升索引写入成功率的操作
- 替换公共RPC节点:默认公共RPC存在限流、响应延迟高的问题,替换为专属/付费Solana主网RPC地址,写入工具的配置文件中,可解决80%以上的这类超时、哈希过期问题
- 追加交易优先费:运行上传命令时添加
--priority-fee 50000参数(单位为microlamports,可根据网络拥堵情况上下调整),提升交易的链上打包优先级,减少排队等待时间 - 调整超时配置:在工具配置文件中将交易超时阈值从默认60秒上调至120秒,避免节点响应慢时提前判定交易失败
- 错峰操作:避开Solana链上热门NFT发售、大额交易集中的拥堵时段执行索引写入,可大幅降低交易失败概率
失败后的恢复方案
不需要重新执行全量上传流程,已完成的资产上传、索引写入进度会被工具自动识别:
- 如果流程中途报错退出,直接重新执行原上传命令即可,工具会自动跳过已完成缓存、已成功上链的索引,仅重试未成功的交易段,不会重复扣除Bundlr存储费用
- 若要单独重试失败的索引交易,直接执行带重试参数的命令
sugar upload --retry即可,工具会自动扫描缓存文件中标记为失败的索引段,仅重发这部分交易,整体耗时通常在数分钟内 - 操作全程不要删除本地生成的
.cache缓存文件夹,也不要手动修改缓存文件内容,否则会丢失已完成的进度记录,才需要重新执行全量上传流程。
内容的提问来源于stack exchange,提问作者bschmitty
相关产品推荐
相关产品推荐

