submitpackage怎样提交交易包? 图 1
submitpackage怎样提交交易包? · 图 1

submitpackage 用于把子交易及未确认父交易作为拓扑有序的交易包提交给本地节点。本文拆解排序约束、费用与燃烧上限、逐交易结果及“本地接纳不等于传播”的边界。

父交易费用较低、子交易费用较高时,操作者往往希望把两者一起交给节点判断。submitpackage 提供本地交易包入口,但它仍是实验性接口,对拓扑、费用上限与返回值的解释都有严格要求。最危险的误读,是把本地接纳写成全网传播成功。

先证明包的形状合法:submitpackage怎样提交交易包

submitpackage是实验性且接口可能变化的RPC,用于把一笔子交易及其未确认父交易作为包提交给本地节点。

观察项正确用途常见误读
父交易集合均为子交易的未确认父项父项之间不能互相依赖
排序父项在前、子项最后不是任意交易列表
maxfeerate限制异常高费率放宽前先复核金额和单位
maxburnamount限制不可花费输出价值不能作为忽略脚本风险的开关
package_msg/tx-results包级与逐交易结果必须一起保存

submitpackage 的记录先保存交易依赖图,再保存 RPC 参数和逐交易返回。若只留下 package_msg,后续无法知道是包形状、单笔策略还是费用上限导致拒绝。

submitpackage的五步证据链

包内父交易之间不能互相依赖,交易必须按拓扑顺序排列且子交易位于最后;maxfeerate与maxburnamount用于设置本地安全上限。

  1. 解码所有交易并建立依赖图。
  2. 确认父交易互不依赖且子交易最后。
  3. 独立核对每笔输入输出与费用。
  4. 设置保守maxfeerate和maxburnamount。
  5. 提交后逐项解析包级与交易级结果。

操作顺序应是解码、画图、核费、设上限、提交与解释。任何一次失败都回到对应关卡,不应为了让接口返回成功而同时放宽多个限制。

package-topology-control-room现场推演

假设父交易 P 支付不足,子交易 C 提供较高费率。正确包序是 P、C;若又加入依赖 P 的另一个父项或把 C 放在前面,就不再符合预期形状。即使节点接受 P 与 C,其他节点的版本、策略和连接状态仍可能不同。

包级消息与 tx-results 可能提供不同粒度的证据。操作者要验证每笔 txid 的状态,并联查本地内存池,避免把“已存在”和“新接纳”混在一起。

交易包的四个高频误判:submitpackage怎样提交交易包

  • 把祖孙多层依赖直接塞进仅支持特定形状的包。
  • 为了通过而无限放宽费用上限。
  • 只看 package_msg,不看 tx-results。
  • 本地成功后立即宣称已传播或已确认。

本地策略、对等传播和矿工确认是三个自治层。submitpackage 只直接作用于第一个层级,后两个层级必须使用其他观测方式。

submitpackage怎样提交交易包状态判断树

  • 拓扑不合法:重建交易关系,不重试同一列表。
  • 费用上限触发:回到金额与费率审计。
  • 某笔已在内存池:结合逐交易状态解释。
  • 本地接纳:继续观察传播与确认,不作承诺。

实验性接口的行为可能随节点版本改变。字段缺失或返回结构变化时应停止自动提交,先执行版本回归样本。

父子交易的数字与版本边界

package_msg与tx-results用于解释本地接纳结果;本地内存池接纳不代表交易包已经传播到全网或会被矿工确认。

submitpackage 的稳定性说明本身就是风险信号。自动化应固定节点版本并保存原始响应;升级后需要重新跑回归样本,不能只依赖字段名称没有变化。

maxfeerate 和 maxburnamount 的单位、默认值与转换过程必须显式展示。超过上限应触发人工复核,绝不能自动改为更大的数字。

陈嘉伟复核台:submitpackage独立演练

在 regtest 构造一组父子交易,再故意交换顺序和加入父项依赖。要求复核者根据返回结果定位拓扑错误,并核对高费率与不可花费输出上限是否阻止危险提交。演练全程不得连接生产钱包。

第二位操作者根据交易图和原始结果复判包是否满足父项互不依赖、子项最后等约束,并指出本地成功后仍缺哪两类证据。

package-topology-control-room验收清单

  • 解码所有交易并建立依赖图,并允许复核者重放。
  • 确认父交易互不依赖且子交易最后,不跳过第一个证据关卡。
  • 已针对“把祖孙多层依赖直接塞进仅支持特定形状的包”设置阻断条件。
  • 已针对“为了通过而无限放宽费用上限”保留人工复查入口。
  • 已执行“在 regtest 构造一组父子交易,再故意交换顺序和加入父项依赖”的独立样本。
  • 已记录 2026 年 10 月 26 日复查日期与一手来源版本。

当前仍需保留的未知项是:包中继与节点策略仍可能随版本演进,生产自动化应固定Bitcoin Core版本、保存逐交易结果并在升级时重新验收。

submitpackage一级资料与站内延伸

  1. Bitcoin Core submitpackage:支撑“submitpackage怎样提交交易包”中的第 1 组字段定义与边界判断;访问于 2026 年 7 月 26 日。
  2. Bitcoin Core 30.0 release notes:支撑“submitpackage怎样提交交易包”中的第 2 组字段定义与边界判断;访问于 2026 年 7 月 26 日。

配套阅读可参考 getmempoolentry字段内存池压力指标比特币费率观察。本文用于解释技术接口和证据方法,不构成投资、收益、交易确认或资金安全承诺。