#275·harbor

Fedimint SQLite 存储缺乏乐观的冲突检测

作者: tvolk131创建于 2025年9月13日更新于 2025年9月19日

Harbor 的 fedimint db 事务在提交时覆盖了一个单个 SQLite blob,而没有进行任何比较和交换/版本检查。这违反了 fedimint 的 快照隔离 要求,即事务在提交时必须失败,如果其修改的任何键自快照以来发生了变化。今天,并发写入者可以互相覆盖(最后写入赢),而 fedimint 的自动提交永远不会看到写入冲突以重试。我看到两种修复方法:

内容来源: HarborWallet/harbor