Bisq 1.10.1 发布说明深度解读:BSQ swap 崩溃修复、费用钳制与交易限额调整

发布时间:2026/11/1 1:48:48
Bisq 1.10.1 发布说明深度解读:BSQ swap 崩溃修复、费用钳制与交易限额调整 Bisq 1.10.1 发布说明深度解读BSQ swap 崩溃修复、费用钳制与交易限额调整本篇基于 Bisq 仓库中的 1.10.1 完整发布说明 与 1.10.1 Notable Changes 展开逐一核对源码实现读完你可以掌握 1.10.1 的兼容性边界0.250 BTC 硬网络上限、BSQ swap 费用钳制、每个关键变更在代码中的落点如BsqSwapCalculation.getAdjustedTxFee、FeeService.updateFeeInfo、DebPackager以及该版本 51 个提交构成的完整可审计清单。版本概览与审计口径1.10.1 的发布说明采用与 Bitcoin Core 发布说明一致的实用风格先讲对使用者和操作者的影响再给出完整的可审计提交清单。原文档明确了审计范围提交区间a33ece9a915dc1eadb45e50960b8dc608a0f09a9之后到75e8ca2d4a98fbea606bf0a4ffdb45f9a4d04373为止用git log --reverse a33ece9a915dc1eadb45e50960b8dc608a0f09a9..HEAD生成区间不含起始提交a33ece9a91包含版本发布提交75e8ca2d4a合并merge提交作为独立条目保留因为它们属于发布历史的一部分提交总数 51其中非合并提交 30、合并提交 21文档生成于 2026-05-28。这种区间 生成命令 总数核对的写法意味着任何审阅者都可以用自己的仓库克隆复现同一份清单是典型的发行级可审计实践。兼容性要点升级前需要知道的事实原文档 Compatibility Notes 列出五条这里逐条结合源码核实版本号设为1.10.1由提交75e8ca2d4a完成法币fiat交易限额在当前0.250 BTC硬网络上限内上调。注意上限本身没有变从 docs/trade-limits.md 的常量表可以看到硬网络上限0.250 BTC对应TradeLimits.MAX_TRADE_AMOUNT网络最大值为networkMax min(DAO_MAX_TRADE_LIMIT, 0.250 BTC)而 DAO 参数MAX_TRADE_LIMIT默认2 BTC。1.10.1 做的是把各支付方式限额向这个硬上限靠拢限额的完整计算规则支付方式限额 → 本地用户限额 → 账户签名削减 → maker/taker 角色在该文档中展开BSQ swap 费用处理负数的 BTC miner contribution 被钳制到 0费用服务更新被钳制到网络最小值下节详述实现现状冷存储提醒阈值改为偏好项持久化默认0.2 BTC钳制上限2 BTC生成的 Debian 包依赖放宽t64备选alternatives同时保留无后缀备选上的原始约束或限定符发布包附带 GitHub Actions 的 cache、upload-artifact、setup-buildx、stale 版本更新。交易、费用与限额BSQ swap take-offer 崩溃修复负 miner contribution 钳制为 01.10.0 的一个已知缺陷BSQ swap 的 take-offer 路径在某些条件下会因调整后矿工费为负而崩溃。原理参见本次发布新增的 docs/bsq-swap-fee-handling.md一笔 BSQ swap 是单个 Bitcoin 交易买方贡献 BSQ彩色输入、卖方贡献 BTC 输入BSQ 交易费不通过独立费用交易支付而是表现为没有作为 BSQ 输出返回的彩色 satoshis——从 Bitcoin 视角它们是矿工费的一部分从 DAO 视角是被烧毁的 BSQ 交易费因此实现上某一侧的 BSQ 交易费被视为已经预先承担了该侧的矿工费份额该侧还需要额外贡献的 BTC 矿工费为adjustedTxFee max(0, txFeePerVbyte * participantVBytes - participantTradeFee)对应 BsqSwapCalculation.getAdjustedTxFee旧代码直接计算txFeePerVbyte * vBytes - bsqTradeFee并要求其为正一旦participantTradeFee txFeePerVbyte * participantVBytes低费率 少量 segwit 输入 小额交易时更常见就失败。当前代码在调用方把负值钳制为 0因为那侧的 BSQ 交易费本来就在矿工费池里钳制后该侧不额外贡献 BTC 矿工费多余部分只是略微多付矿工。源码中该函数对vBytes有MIN_SELLERS_TX_SIZE104下限校验、txFeePerVbyte必须为正且vBytes估算公式为5 Σ(inputVBytes) outputVBytessegwit 输入 68 vbytes、非 segwit 输入 149 vbytes、有找零 62 / 无找零 31见 BsqSwapCalculation。调用链分布在买卖双方协议任务中如 BuyerCreatesBsqInputsAndChange 与 SellerCreatesAndSignsTx。FeeService 费率更新钳制配套的提交66cc2d85fe让费用服务在updateFeeInfo时把供应商提供的费率钳制到允许范围。从源码看FeeService.updateFeeInfo 的注释明确解释了动机下游代码尤其 BSQ swap 的getAdjustedTxFee依赖txFeePerVbyte minFeePerVbyte来保证一侧的 BSQ 交易费覆盖该侧矿工份额时整笔交易费用仍满足中继最低要求同时防止恶意/故障的费率源返回离谱数值导致费用估算器乘法溢出。有一个值得注意的实现细节由于v1.10.0 并未向 networkMin 钳制可能收到通常约为 10 的较低值为了不破坏跨版本兼容性当前版本只对minFeePerVByte按BTC_MAX_TX_FEE封顶注释中标明等交易版本强制 v1.10.0 后可改用 networkMin 作下界。也就是说发布说明里钳制到网络最小值的表述在当前源码中体现为保留下界、封顶上界、并维持maxFee txFee minFee networkMin不变量的防御式钳制。交易限额在 0.250 BTC 硬上限内上调提交75a6e9d996Increase fiat trade limits配合 docs/trade-limits.md 的同步更新把法币限额向硬上限靠拢提交a13472b879则在限额下调后修复了交易统计的校验逻辑。限额机制的核心结论摘自 trade-limits 文档每种支付方式有自己的最大 BTC 额本地userDefinedTradeLimit初始值0.1 BTC即 Preferences.INITIAL_TRADE_LIMIT只可能降低该额度账户签名只在用有拒付风险的法币支付方式买 BTC时削减额度卖 BTC 永远不受签名削减影响所有交易受0.250 BTC硬网络上限约束。界面与设置冷存储提醒阈值可配置化提交41c90a8ce0把冷存储提醒阈值做成了偏好项。源码落点常量与钳制逻辑在 PreferencesINITIAL_COLD_STORAGE_REMINDER_THRESHOLD 20000000L0.2 BTC、MAX_COLD_STORAGE_REMINDER_THRESHOLD 200000000L2 BTCgetClampedColdStorageReminderThreshold在 0时回落到 0.2 BTC 默认值并封顶 2 BTC偏好读取后若与钳制值不一致会自动写回钳制值Preferences并通过 PreferencesPayload 持久化设置界面在 PreferencesView 中新增输入框用BtcValidator校验并把最大值限定为MAX_COLD_STORAGE_REMINDER_THRESHOLD即 UI 层的校验与持久层钳制一致。其他界面变更开发模式抑制钱包警告弹窗提交3805f229d7dev mode 下不再弹出钱包警告避免开发调试被干扰交易规则与条款提交f64dbece84、7fde548076、48e10731de更新了 TC并把 trade rules 与 terms and conditions 链接进 Settings/About同时刷新了 trade-rule 和 TC 窗口日期选择器迁移提交b112febcbf用 JavaFX 原生DatePicker替换了第三方JFXDatePicker减少第三方 UI 组件依赖。API、测试与打包gRPC observer 透出异步失败提交5a23970079让 offer 与 wallet 的异步失败通过 gRPC observer 暴露出来。对 API 客户端的影响是此前发起后静默失败的操作现在会在响应流上收到错误回调客户端可以据此向用户展示明确的失败原因而不是等到后续查询余额/报价时才发现异常。测试栈迁移到 Docker提交d56e8d2e4e把遗留的、曾被禁用的 API 测试移植到 Docker 栈对应 apitest/docker 中的docker-compose.yml与run-e2e-tests.sh组织方式恢复了一部分端到端覆盖提交37663453ed改进TradeScenarioTest中对 BSQ 余额变化的轮询等待见 apitest 测试源码降低交易场景测试的时序抖动。Debian 包 t64 依赖放宽Ubuntu 24.04 的 32 位 ABI 迁移把部分库包改名追加t64后缀如libasound2→libasound2t64。jpackage 生成的依赖在 t64 系统上会钉死新名并拒绝安装旧系统上则相反。DebPackager 的实现是// 将 pkgXt64 依赖改写为 pkgXt64 | pkgX 备选兼容新旧发行版 private fun relaxT64Dependency(dep: String): String { ... val baseName pkgName.dropLast(3) val suffix dep.removePrefix(pkgName) return $dep | $baseName$suffix }两条提交各有侧重1c3773adbd做备选放宽ae2c7a30cd修正为保留无后缀备选上的原始版本约束/限定符如、|已有备选的依赖不重复处理避免放宽时丢失依赖语义。发布流程与 CI这一组变更面向的是下一次发版如何更安全Gradle 发布物签名任务84ebd0c10d为发布产物提供签名任务签名材料见 release-process 与 rep 相关文档发布物目录列举防护9f8d9a14d2与 macOSfinalize.sh签名出错即失败94bfa327b1对应 package/finalize.sh防止签名静默失败仍产出看似完整的发布包可复现构建签名attestation文档b5283defd6见 docs/reproducible-builds/attestations.md说明发布签名的计划与验证方式GitHub Actions 依赖升级actions/cache4.3.0 → 5.0.5、actions/upload-artifact4.6.2 → 7.0.1、docker/setup-buildx-action3.12.0 → 4.0.0 → 4.1.0、actions/stale10.2.0 → 10.3.0均为 dependabot 自动提交的常规供应链维护。完整提交清单51 条以下按git log --reverse顺序收录与原文档一致此处省略外链提交号保留供检索日期提交类型摘要作者2026-05-157c93f2ab71CommitUpdate release notesHenrikJannsen2026-05-15f189edf86fMergeMerge PR #7813 (update-release-notes)HenrikJannsen2026-05-15b5283defd6CommitDocument reproducible build attestation planHenrikJannsen2026-05-165a23970079CommitSurface async offer/wallet failures through the gRPC observerwodoro2026-05-1784ebd0c10dCommitAdd Gradle release artifact signing tasksHenrikJannsen2026-05-1747ed5cc40fMergeMerge PR #7814 (add-attestations.md)HenrikJannsen2026-05-179f8d9a14d2CommitGuard release artifact directory listingHenrikJannsen2026-05-1746cb115064CommitUse indented release-process command blockHenrikJannsen2026-05-1794bfa327b1CommitFail finalize.sh on release signing errorsHenrikJannsen2026-05-17b112febcbfCommitUses DatePicker instead of JFXDatePickerHenrikJannsen2026-05-17f38573a386CommitRelease notes created from commits after 1.9.23, folding in the missing 1.9.23 scopeHenrikJannsen2026-05-177265716790MergeMerge PR #7820 (improve-release-process-tasks)HenrikJannsen2026-05-17c12c5a8836MergeMerge PR #7821 (DatePicker)HenrikJannsen2026-05-17aa9426f554MergeMerge PR #7817 (validate-grpc-contract-fix)wodoro2026-05-17382c945ca9MergeMerge PR #7822 (missing commits of 1.9.23)HenrikJannsen2026-05-19f3d54a4311CommitBump actions/cache 4.3.0 → 5.0.5dependabot[bot]2026-05-19c02db280c2CommitBump actions/upload-artifact 4.6.2 → 7.0.1dependabot[bot]2026-05-193da2168948CommitBump docker/setup-buildx-action 3.12.0 → 4.0.0dependabot[bot]2026-05-193107c7601cMergeMerge PR #7824 (actions/cache)HenrikJannsen2026-05-193d852906d9MergeMerge PR #7825 (upload-artifact)HenrikJannsen2026-05-199c072483e2MergeMerge PR #7826 (setup-buildx 4.0.0)HenrikJannsen2026-05-19d56e8d2e4eCommittest(apitest): port legacy disabled tests to docker stackwodoro2026-05-191c3773adbdCommitRelax t64 dependencies in generated .debDavid Carrington2026-05-20febd6b541aMergeMerge PR #7828 (enable_old_tests)wodoro2026-05-20ae2c7a30cdCommitPreserve original constraint/qualifier on the unsuffixed alternativeDavid Carrington2026-05-21a1337ae1cbCommitAdd temp directory to gitignoreHenrikJannsen2026-05-2130b5f92e14MergeMerge PR #7831 (update-gitignore)HenrikJannsen2026-05-216fe6c9d645CommitAdd doc about BSQ swap fee handlingHenrikJannsen2026-05-218c0ac2ade2MergeMerge PR #7832 (add-doc-about-BSQ-fee-handling)HenrikJannsen2026-05-215a75a48785CommitFix BSQ swap take-offer crash by clamping BTC miner contribution at 0wodoro2026-05-2166cc2d85feCommitClamp FeeService rates at the network minimum on updateFeeInfowodoro2026-05-2137663453edCommittest(apitest): poll for BSQ balance changes in TradeScenarioTestwodoro2026-05-22f64dbece84CommitUpdate tacHenrikJannsen2026-05-233805f229d7CommitDont show wallet warning popup if in dev modeHenrikJannsen2026-05-23a13472b879CommitFix trade statistics validation after limit reductionsHenrikJannsen2026-05-2303e2279c27MergeMerge PR #7830 (fix-bsq-swap-take-offer-crash)wodoro2026-05-235b1848486dMergeMerge PR #7836 (wallet warning devmode)HenrikJannsen2026-05-237e33ff9593MergeMerge PR #7837 (trade statistics validation)HenrikJannsen2026-05-25ff489683a4CommitBump docker/setup-buildx-action 4.0.0 → 4.1.0dependabot[bot]2026-05-25453a752748CommitBump actions/stale 10.2.0 → 10.3.0dependabot[bot]2026-05-2775a6e9d996CommitIncrease fiat trade limitsKimStrand2026-05-237fde548076CommitAdd trade rulesHenrikJannsen2026-05-2748e10731deCommitAdd trade rules and tac to settings/aboutHenrikJannsen2026-05-273bceb8010cMergeMerge PR #7843 (update-tac)HenrikJannsen2026-05-27773ce29804MergeMerge PR #7839 (actions/stale 10.3.0)HenrikJannsen2026-05-27672007c26cMergeMerge PR #7838 (setup-buildx 4.1.0)HenrikJannsen2026-05-2741c90a8ce0CommitAdd coldStorageReminderThreshold to settings, update textHenrikJannsen2026-05-27c5368ba3b1MergeMerge PR #7844 (improve-hot-wallet-warning)HenrikJannsen2026-05-27fdd078dcfaMergeMerge PR #7842 (increase-fiat-trade-limits)KimStrand2026-05-27a2099b0a79MergeMerge PR #7829 (bugfix/7819-deb-dependency)dmcarrington2026-05-2775e8ca2d4aCommitSet version 1.10.1HenrikJannsen小结1.10.1 是一个以稳定性修复与发布工程加固为主题的版本核心业务面修复了 BSQ swap take-offer 在负 miner contribution 下的崩溃max(0, …)钳制 低费率费用校验测试费用服务在updateFeeInfo处建立了防御式钳制不变量限额面在0.250 BTC硬网络上限内上调法币限额并同步了 docs/trade-limits.md 文档用户体验面新增了可持久化的冷存储提醒阈值0.2 BTC 默认、2 BTC 上限工程面则完成了 gRPC 错误透出、Docker 测试栈迁移、Debian t64 依赖兼容与发布签名/可复现构建 attestation 的落地。所有结论均可通过上文列出的源码路径在本仓库中直接复核。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询