开发者生态
morning
人工智能的奇迹:我们即将终止错误赏金计划
2026-05-15
1 阅读
tjek
2026 年 5 月 12 日人工智能的奇迹:我们即将终止错误赏金计划 近一年来,Turso 推出了一项计划,针对任何可证明会导致数据损坏的错误支付 1,000 美元。今天,我们将停用该计划。 Glauber Costa 近一年来,Turso 推出了一项计划,针对任何可被证明导致数据损坏的错误,支付 1,000 美元。今天,我们怀着无比悲伤的心情,终止这个计划。原因很简单:每个人都被污水机淹没了。在这方面我们并不是独一无二的。然而,对于垃圾制造者来说,提供金钱来换取特定类别的错误的计划实在是太诱人了。几天来,我们的维护人员除了声称发现了导致 Turso 数据损坏的错误之外,几乎没有做任何其他事情。在许多 OSS 项目关闭贡献之门的时代,我们希望尽一切努力保持 Turso 的大门敞开。成为开放贡献项目是我们 DNA 的一部分。图尔索就是这样诞生的。但不幸的是,经济回报使这几乎不可能,所以必须放弃。我们公开、大声地分享这一点,是因为我们相信,在这个新时代,我们都必须找到建立良好治理的新方法,并且应该互相学习。这是我们对这次对话的贡献。 # 我们为什么启动这个计划 我们启动这个计划是因为我们正在重写 SQLite,它被认为是世界上最可靠的软件之一。社区对具有如此雄心的项目抱有很高的期望,我们投入了巨大的努力来确保我们能够匹配甚至超越 SQLite 传奇般的可靠性。 Turso 附带了一个本机确定性模拟器、一组模糊器、一个针对 SQLite 的基于 Oracle 的差异测试引擎、一个并发模拟器,最重要的是,我们在 Antithesis 上进行了广泛的运行。我们认真对待我们的测试纪律。我们想传达我们的信心。另一方面,所有的测试基础设施归根结底都只是软件,并不完美。您可以编写世界上所有的模糊器和模拟器,但它们只能捕获有效生成的组合中的错误。例如,如果您的模糊器从不生成索引,那么根据定义,无论您对系统其余部分的压力有多大,您都不会发现与索引相关的任何错误。作为一个真实的例子,我们发现了模拟器中逃逸的错误,因为它们只会出现在大于 1GB 的数据库中,而且因为我们在每次运行中都积极注入错误,数据库永远不会变得足够大以触发。自动化测试的主要优点是错误可以逃脱您的验证,一旦您改进了测试生成器,整个类别的错误就会消失。因此,我们认为这个程序是实现这两件事的好方法:它帮助我们建立了对方法的信心,但同时,如果有人确实发现我们的模拟器没有很好地覆盖的领域,我们会非常乐意为此付费!我们在启动该计划时对可能导致数据损坏的错误给予 1,000 美元的奖励,直到我们发布 Turso 1.0 版本为止。我们的计划是,一旦达到 1.0,我们将逐步将奖励的规模以及我们奖励人们的问题的范围增加到可观的水平。 # 在“奇点”之前,这效果很好,我们对这个程序感到很高兴。我们一共付了5个人的钱。所有获奖者都是非常特别的人。值得强调 Alperen 的工作,他实际上是我们模拟器本身的核心贡献者之一(毫不奇怪,他知道一些可以改进的地方)。然后是 Mikael,他实际上以一种非常有创意的方式使用 LLM 来识别模拟器无法到达的地方(我们后来雇用了 Mikael),还有 Pavan Nambi,他将模拟器与正式方法配对,最终不仅发现了 Turso 中的错误,而且实际上通过方法在 SQLite 本身上发现了十多个错误。 # 但在“奇点”之后,我们被淹没了 根据我们的经验,任何有能力发现关键问题的人都是我们社区中想要的人。我们确实偶尔有人试图提交糟糕的 PR,希望获得赏金,但这种情况很少见:必须扩展模拟器来演示错误的要求(仅仅指出错误是不够的)有助于保持高标准,最重要的是,没有那么多错误。但随后,一夜之间,大量污水被释放。仅仅在 Turso 获得法学硕士学位并试图找到 bug 的奖励就太高了。众所周知,如果你指示法学硕士去寻找错误并收集赏金,它会产生一些输出。无论它是否有意义,都是完全不同的故事。我想与大家分享其中的一些内容。 # 一些例子 在这个 PR 中,作者只是 inj