2023 12 17 HackerNews

OpenAI suspends ByteDance’s account after it used GPT to train its own AI model #

https://www.theverge.com/2023/12/15/24003542/openai-suspends-bytedances-account-after-it-used-gpt-to-train-its-own-ai-model

这篇文章的标题是《OpenAI 在 ByteDance 使用 GPT 训练自己的 AI 模型后暂停其账户》。文章指出,ByteDance 违反了微软和 OpenAI 的开发者许可协议,通过使用 GPT 生成的数据来训练自己在中国的竞争模型。OpenAI 的发言人确认,他们已经暂停了 ByteDance 的账户,并表示所有 API 客户必须遵守使用政策,以确保技术的善用。

虽然 ByteDance 对 API 的使用很少,但 OpenAI 将在进一步调查后决定是否要求他们做出必要的改变或终止其账户。文章还提到,ByteDance 大部分的 GPT 使用是通过微软的 Azure 平台进行的,而不是直接通过 OpenAI。作者还询问了微软是否会跟随 OpenAI 的做法,暂停 ByteDance 的访问权限。

这是一篇关于 OpenAI 暂停 ByteDance 账户的新闻报道。文章提到了 ByteDance 违反开发者许可协议的行为,并强调了 OpenAI 对技术使用政策的重视。这个事件突显了 AI 技术在商业应用中的合规性和道德问题的重要性。

来源:The Verge


HN 评论 258 comments | 作者:webmaven | 19 hours ago #

https://news.ycombinator.com/item?id=38662160

有人认为 OpenAI 使用他人的版权作品或未经许可的"输出",却不允许他人使用他们的工作/输出,这种做法有些虚伪。

但也有人指出,使用内容和使用模型之间存在实质性的区别。预训练一个 GPT 4 级模型需要数万亿个标记和数百万美元的计算成本,而使用 GPT 4 的输出来提炼模型所需的数据量要小得多。

此外,OpenAI 可能正在以当前每个标记的成本补贴计算成本,这显然是不可持续的。因此,从道德上讲,使用互联网规模的文本数据进行训练是另一个讨论,但仅仅消费内容是没有问题的。问题更复杂的是生产,即从训练数据中合成多少内容是允许的。

有人认为内容的创作需要比预训练 GPT-4 模型更多的努力和成本。他们认为,GPT 的输出和维基百科页面等内容的创作过程相比,没有经历同样的努力和成本。此外,维基百科会尽力引用其来源,而 GPT 则设计成隐瞒其来源。因此,他们认为 GPT 的输出和人们花费数十亿小时创作的内容相比,不具备更原始的特性。

有人认为,使用 GPT-4 的输出来提炼模型的成本相对较低,与维护内容的成本相比可以忽略不计。他们认为,内容所有者唯一可能抱怨的是 ChatGPT/DallE 可能会降低他们的潜在收入,但这需要得到证明。此外,他们指出,低质量的自动化内容生产商在 OpenAI 之前就已存在,并且已经在削弱对更精心制作内容的关注。

有人认为,从原始数据中训练模型所需的努力和资源与用于生产训练输入的努力和资源相比微不足道。他们认为,从互联网上获取的原始数据的价值已经被整合到了单个公司中。

总的来说,这些评论观点涵盖了 OpenAI 暂停 ByteDance 账户的决定,并就使用他人作品和使用模型的道德和法律问题进行了讨论。

请注意,这些评论来自 Hacker News 上的用户,代表了他们个人的观点和意见,并不代表 OpenAI 或其他机构的正式立场。


Bluetooth keystroke-injection in Android, Linux, macOS and iOS #

https://github.com/skysafe/reblog/tree/main/cve-2023-45866

这篇文章是关于一个名为 CVE-2023-45866 的漏洞的摘要。该漏洞存在于 Android、Linux、macOS 和 iOS 中的蓝牙功能中,允许未经身份验证的蓝牙设备注入按键操作。漏洞的具体细节和演示脚本将在即将举行的会议上发布。

该漏洞的影响是,附近的攻击者可以通过未经身份验证的蓝牙连接到受影响的设备,并注入按键操作,例如安装应用程序、运行任意命令、转发消息等。攻击不需要专门的硬件,可以使用普通的蓝牙适配器从 Linux 计算机执行。漏洞在不同操作系统中的修复情况如下:

Android: Android 11-14 的安全补丁可以缓解该漏洞,但对于 Android 4.2.2-10 没有可用的修复方法。

Linux/BlueZ: Ubuntu 18.04、20.04、22.04 和 23.10 版本中存在该漏洞,但 ChromeOS 配置似乎可以缓解该漏洞。BlueZ 的修复补丁可以在这里找到。

macOS: 在测试的设备中发现了该漏洞,Lockdown Mode 无法阻止攻击。

iOS: 在测试的设备中发现了该漏洞,Lockdown Mode 无法阻止攻击。


HN 评论 210 comments | 作者:3np | 23 hours ago #

https://news.ycombinator.com/item?id=38661182

这篇帖子讨论了在 Android、Linux、macOS 和 iOS 上存在的蓝牙按键注入漏洞。以下是一些评论的摘要:

有用户建议在不使用蓝牙时禁用它,以保持安全。对于 Android 用户,可以在不使用蓝牙时禁用它,但在使用蓝牙时仍然存在漏洞。对于 Linux 用户,可以通过修改/etc/bluetooth/input.conf 文件来设置 ClassicBondedOnly=true,并在修改后重新启动蓝牙服务。对于 macOS 和 iOS 用户,评论中没有提供具体的解决方法。

有用户提到在 iOS 更新后,蓝牙总是重新启用,即使用户从未使用过蓝牙。这可能导致用户的困惑和安全隐患。

有用户提到在 Fedora 38 中,ClassicBondedOnly=true 已经成为默认设置,但在 Fedora 39 中,该设置被注释掉了。

有用户提到 iOS 和 macOS 已经修复了这个问题,并提供了苹果官方支持页面的链接。

有用户提到在 Windows 上没有提到这个问题,但也有其他用户表示在 Windows 上使用蓝牙时遇到了问题。

请注意,这些摘要仅代表帖子中的一部分评论,可能还有其他观点和讨论。阅读完整的帖子可以获得更全面的信息和观点。


Advancements in machine learning for machine learning #

https://blog.research.google/2023/12/advancements-in-machine-learning-for.html

这篇文章是关于机器学习在机器学习领域的进展的。文章介绍了如何利用机器学习来提高机器学习工作负载的效率,并介绍了一些相关的研究和数据集。

文章中提到,现代的机器学习模型使用机器学习编程框架(如 TensorFlow、JAX、PyTorch 等)进行编程和训练。这些库提供了高级指令,如线性代数运算和神经网络层,使机器学习从业者无需担心如何在硬件上高效运行模型,因为机器学习框架会通过底层编译器自动优化用户的模型。然而,编译器通常依赖启发式算法来解决复杂的优化问题,这往往导致性能不佳。

文章介绍了一些关于机器学习编译器的优化方法,包括图级别和内核级别的优化。图级别优化需要考虑整个计算图的上下文,以做出最佳决策并相应地转换整个图。内核级别优化则是独立地转换一个内核(一个融合的子图),而不考虑其他内核。

为了改进机器学习模型的效率,文章介绍了一个名为"TpuGraphs"的数据集,用于学习在 Google 的自定义 Tensor Processing Units(TPUs)上运行的程序的成本模型。该数据集包含了大量的计算图,以及编译配置和使用该配置编译时的执行时间。这个数据集的规模比现有的性能预测数据集大得多,为研究大规模图级别预测任务提供了更多的机会。

此外,文章还介绍了一种名为 Graph Segment Training(GST)的方法,用于在内存有限的设备上处理大型图形。GST 将大型图形分割为较小的片段,并选择随机的片段来更新模型,而不保存其中间激活状态的内存。然后将所有片段的嵌入组合起来生成原始大型图形的嵌入,用于预测。这种方法可以将整个训练时间加速 3 倍。

最后,文章还提到了一个基于 TpuGraphs 数据集的 Kaggle 竞赛,以及一些参赛队伍采用的有趣技术和方法。

总的来说,这篇文章介绍了机器学习在机器学习领域的进展,重点是优化机器学习编译器和提供大规模的数据集来改进模型的效率。


HN 评论 137 comments | 作者:atg_abhishek | 23 hours ago #

https://news.ycombinator.com/item?id=38661296

有人认为这些机器学习编译器被过度宣传,与传统编译器相比存在相同的权衡,虽然可以获得更高的吞吐量,但专门的性能程序员通常会表现得更好。

一些人认为这些编译器在多个层面上存在不足之处:算法、意图丢失和效率问题。

也有人认为机器学习编译器具有潜力,可以在特定算法和微架构上超越人类的结果。

还有人表示,未来的优化器和编译器很可能会基于机器学习。

这些评论涵盖了机器学习编译器的优势、不足和潜力。不同的观点反映了人们对这一技术的看法和期望。


SSH3: SSHv2 using HTTP/3 and QUIC #

https://github.com/francoismichel/ssh3

摘要:SSH3: 更快速和功能丰富的安全外壳,使用 HTTP/3

SSH3 是对 SSH 协议的全面改进,将其语义映射到 HTTP 机制之上。SSH3 使用 QUIC+TLS1.3 进行安全通道建立,并使用 HTTP 授权机制进行用户身份验证。SSH3 具有以下改进:

会话建立速度显著提高

支持新的 HTTP 身份验证方法,如 OAuth 2.0 和 OpenID Connect,以及传统的 SSH 身份验证

对端口扫描攻击具有鲁棒性:您的 SSH3 服务器可以对其他互联网用户隐藏

支持 UDP 端口转发和传统的 TCP 端口转发

支持现代 QUIC 协议的所有功能,包括连接迁移和多路径连接(即将推出)

SSH3 比 SSHv2 在会话建立方面更快速,但在吞吐量方面并没有提升。SSH3 使用 TLS 1.3、QUIC 和 HTTP 等经过时间测试的机制来确保安全性。它支持常见的基于密码和公钥(RSA 和 EdDSA/ed25519)的身份验证方法,并且还支持 OAuth 2.0 等新的身份验证方法,允许使用 Google/Microsoft/Github 帐户登录到服务器。

使用 SSH3,您可以避免传统 SSH 服务器面临的扫描和字典攻击的压力。您的 SSH3 服务器可以隐藏在一个秘密链接后面,只响应对该特定链接发出的身份验证尝试,对其他请求返回 404 Not Found。这样,互联网上的攻击者和网络爬虫无法检测到您的 SSH3 服务器,他们只会看到一个简单的 Web 服务器对每个请求返回 404 状态码。

SSH3 提供了一些 SSHv2 协议无法提供的新功能,包括 UDP 端口转发、X.509 证书身份验证和基于 OpenID Connect 的无密钥安全用户身份验证。此外,SSH3 还实现了许多 OpenSSH 的流行功能,使得从 OpenSSH 迁移到 SSH3 变得更加顺利。

要安装 SSH3,您可以下载最新的发布二进制文件,或者通过从源代码编译来生成这些二进制文件。在连接到主机之前,您需要在主机上部署一个 SSH3 服务器。目前还没有 SSH3 守护程序,所以您需要使用 screen 或类似的工具在后台运行 ssh3-server 可执行文件。

要使用 SSH3 客户端连接到 SSH3 服务器,您可以使用类似于传统 SSHv2 工具的方式。您可以使用私钥身份验证、基于代理的私钥身份验证或密码身份验证等方法连接到服务器。

请注意,SSH3 仍处于实验阶段,是研究工作的成果。如果您担心公开部署新的 SSH3 服务器,可以使用 SSH3 的秘密路径功能将其隐藏在一个秘密 URL 后面。


HN 评论 166 comments | 作者:kieto | 10 hours ago #

https://news.ycombinator.com/item?id=38664729

根据提供的链接,这是一个关于 SSHv2 使用 HTTP/3 和 QUIC 的讨论帖子。帖子中的评论观点包括:

有人认为在 SSH over QUIC 中使用 HTTP/3 没有必要,因为它会增加额外的开销。

有人提到使用 QUIC-SSH 会导致维护每个 QUIC-SSH 会话的状态机变得复杂。

有人认为使用 HTTP 进行身份验证是可行的。

有人对在 SSH 中使用 X.509 证书进行身份验证表示担忧。

有人认为 SSH 证书与 X.509 PKI 证书不同。

有人认为 SSH 证书和 X.509 证书具有相似的安全模型。

有人认为在 SSH 中使用 SNI 或标准化的元数据块可以解决某些问题。

有人对使用 Cloudflare 作为 SSH 服务器的 CDN 提出了疑问。

有人认为 SSHv3 需要一种加密的 SNI 或标准化的元数据块。

有人对 SSHv3 的命名提出了批评。

有人对 SSH over QUIC 表示了兴趣,并提到了一些潜在的优势和问题。

有人提到了其他类似的项目,如 SSH over WebSocket 和 HPN-SSH。

有人认为使用 HTTP/3 隐藏 SSH 服务器是一个有趣的想法,但也提到了一些安全和性能方面的考虑。

有人对 SSH over QUIC 的性能和优势提出了疑问。

有人提到了使用 SSH 证书进行登录的可能性。

有人对使用 SSH 证书进行登录的可行性表示怀疑。


NASA study finds life-sparking energy source and molecule at Enceladus #

https://phys.org/news/2023-12-nasa-life-sparking-energy-source-molecule.html

文章介绍了 NASA 的 Cassini 任务在土星的冰卫一号(Enceladus)上收集到的数据,并发现了生命起源的关键成分和一种超级高能量的能源。

科学家们已经知道,从土星的冰卫一号喷发出的冰粒和水蒸汽的巨大喷流中富含有机化合物,其中一些对我们所知的生命非常重要。现在,科学家们分析了 NASA 的 Cassini 任务的数据,并进一步证实了氢氰酸的存在,这是生命起源的关键分子。

研究人员还发现,隐藏在冰卫一号冰壳下方并供应喷流的海洋中存在一种强大的化学能源。这种能源以几种有机化合物的形式存在,其中一些在地球上可以作为生物的燃料。

这些发现表明,这颗小卫星内部可能存在比之前认为的更多的化学能源。能源越充足,生命繁衍和维持的可能性就越大。

这项研究进一步证明了冰卫一号不仅满足生命存在的基本要求,还提供了有关复杂生物分子如何在那里形成以及可能涉及的化学途径的想法。

氢氰酸的发现尤其令人兴奋,因为它是大多数关于生命起源的理论的起点。我们所知的生命需要氨基酸等构建块,而氢氰酸是形成氨基酸的最重要和多功能的分子之一。

研究人员通过详细的统计分析来揭示这些发现。他们研究了 Cassini 的离子和中性质谱仪收集的围绕土星的气体、离子和冰粒的数据。通过量化数据中所包含的信息量,研究人员能够揭示不同化学化合物在解释 Cassini 信号方面的微小差异。

尽管科学家们离回答冰卫一号是否能够产生生命还有很长的路要走,但这项研究为可能在实验室中进行测试的生命化学途径提供了基础。

总的来说,这项研究通过 Cassini 任务的观测结果,进一步揭示了土星的卫星冰卫一号的特点,包括其神秘的特点,并发现了生命起源所需的关键成分和高能量的能源。

原文链接:NASA study finds life-sparking energy source and molecule at Enceladus


HN 评论 124 comments | 作者:wglb | 20 hours ago #

https://news.ycombinator.com/item?id=38661903

有人认为虽然我们在其他地方发现了水、有机物和“适居”系外行星等迹象,但这并不意味着生命即将出现。因为迄今为止,在可观测的宇宙中,除了地球之外,没有任何一丝生命存在的证据。此外,我们还没有成功地从非生物物质中孵化出生命,也不知道这个过程是如何发生的,以及它发生的可能性有多大。

另一些人认为,我们在各个领域发现的生命的可能性比预期的要高。例如,我们发现了许多系外行星,火星上有迹象表明存在移动的水、甲烷来源和复杂的有机分子,地球的地壳深处存在大量的“黑暗生物圈”。当我们获得开始寻找生命的工具时,我们立即发现了强有力的间接证据,这表明进一步的探索是非常值得的。

还有人提到了关于生命起源的假设,如 Jeremy England 的“耗散驱动适应”假设,该假设认为分子的随机组合可以自组织以更有效地吸收和耗散环境中的热量。根据这个假设,生命不应该是唯一的,而是不可避免的,因为生命是物质更好地耗散热量、将低熵转化为高熵的方式。这些观点认为,生命在物理上是一种自然现象,而且在宇宙中可能是普遍存在的。

总的来说,这些评论观点涵盖了对于在其他地方是否存在生命的不同看法。有些人持怀疑态度,认为我们还没有足够的证据来支持生命在宇宙中的普遍存在。而另一些人则认为,我们发现的迹象表明生命更可能存在,进一步的探索是有价值的。此外,还有一些关于生命起源的假设和理论被提及,但仍然存在许多未知和争议。

请注意,这些摘要是根据链接中的评论总结而来,可能不代表所有观点。阅读原始帖子和评论以获取更全面的信息是更好的做法。


MongoDB security notice #

https://www.mongodb.com/alerts

这篇文章是关于 MongoDB 警报的。文章提到了一些关键的警报和公告。其中包括以下内容:

MongoDB 安全通知:文章提到了一起涉及未经授权访问某些 MongoDB 公司系统的安全事件。这次事件包括了客户账户元数据和联系信息的泄露。MongoDB 在发现可疑活动后立即启动了应急响应流程,并相信这次未经授权访问在被发现之前已经存在一段时间。目前,我们还不清楚是否有客户在 MongoDB Atlas 中存储的数据受到了泄露。然而,我们建议客户保持警惕,防范社交工程和网络钓鱼攻击,启用抗网络钓鱼的多因素身份验证(MFA),并定期更改 MongoDB Atlas 的密码。MongoDB 将在继续调查此事时更新此警报页面。

数据完整性相关:文章没有提供关于数据完整性的具体信息。

操作相关:文章没有提供关于操作的具体信息。

安全相关:文章提到了一起安全事件,涉及未经授权访问 MongoDB 公司系统和客户账户信息的泄露。建议客户采取一些安全措施,如启用抗网络钓鱼的多因素身份验证(MFA)和定期更改密码。


HN 评论 126 comments | 作者:ciudilo | 5 hours ago #

https://news.ycombinator.com/item?id=38667596

根据提供的链接,这篇帖子是关于 MongoDB 安全通知的讨论。其中一些评论提到了用户在登录 MongoDB Atlas 账户时遇到的问题,包括无法进行身份验证和登录失败的情况。还有一些评论提到了 MongoDB 员工的回复,解释了登录问题与安全事件无关,并提醒用户继续关注 MongoDB 的警报页面以获取最新信息。

总结观点:

用户报告了无法登录 MongoDB Atlas 账户的问题。

MongoDB 员工解释了登录问题与安全事件无关,并提供了解决方法和警报页面链接。

一些评论提到了 MongoDB 的优点和缺点,以及与其他数据库的比较。

请注意,这只是对帖子中观点的摘要,具体内容可能更详细。


Moving from relational data to events #

https://event-driven.io/en/the_end_is_near_for_crud_data/

这篇文章主要讨论了从关系型数据向事件驱动的数据迁移的指南。

在这篇文章中,作者提到了关系型数据的局限性和问题,以及事件驱动架构的优势。作者强调了事件驱动架构中的事件是关于已发生事件的事实,并且这些事件是不可变的。通过存储事件流,可以构建一个共享的过程理解,促进技术和业务人员之间的沟通和合作。

文章还提供了一些迁移关系型数据到事件驱动架构的实践建议,包括:

查找状态列,并将其转换为相应的事件。

分析日期列,并根据其重要性引入新的事件。

分析列的可选性,并确定在事件流中如何处理这些数据。

查找具有多对一关系的表,并根据业务过程来确定事件流的边界。

在迁移过程中,不要试图欺骗或重用事件,而是引入明确的导入事件。

进行实验和验证,逐步迁移数据并与预期结果进行比较。

总的来说,这篇文章提供了一个关于如何从关系型数据向事件驱动的数据迁移的指南,强调了事件驱动架构的优势和实践建议。


HN 评论 116 comments | 作者:alexzeitler | 11 hours ago #

https://news.ycombinator.com/item?id=38664412

有人建议将事件数据存储在 PostgreSQL 中,并使用开源报表工具进行报表分析,直到数据量达到 2TB,然后决定是保留 2TB 在线数据还是只保留每日/每小时摘要数据。该方法可以使用 AWS RDS 多可用区自动故障转移来提供服务,并且在维护方面的工作量较小。

有人提到,如果需要"时间旅行"、“恢复被覆盖的状态"或"重新解释过去的事件”,有时只需要维护快照的审计日志,并编写脚本来识别和收集特定事件序列的实例,然后由人工进行审查和批量应用以回填新逻辑的效果。

有人表示理论上喜欢事件溯源,但在实践中,添加新的 CRUD 工作流程或快速可靠地推出早期和中期创业公司需要的干预和热修复时,需要大量样板代码。除非正在实现付款处理等特定场景,否则事件溯源可能不是正确的选择。

有人提到事件溯源在复杂的转化流程和从第三方系统同步数据方面非常有用。

有人表示事件驱动架构适用于在业务领域之外发生的事件,而不是需要客户发起请求并期望响应的情况。

有人认为事件驱动架构是一种寻找问题的解决方案,可以让工程团队有更多的工作并提升他们的简历,但并不一定是最佳选择。

有人提到事件驱动设计对于金融数据非常有意义。

有人建议使用专门设计用于事件驱动的数据库,如 Google BigQuery、Amazon Redshift 或 ClickHouse,或者将关系型存储重命名为缓存层,与事件系统并行使用。

有人表示事件溯源需要额外的复杂性,如如何生成读模型、如何对模型进行版本控制以及如何处理读模型的快照。

有人认为事件驱动设计适用于特定的流程和数据变化频繁且有趣的场景,但对于大多数情况下,传统的关系型数据存储足够。

有人提到事件驱动设计需要将事件流投影到读模型中,可以有多个读模型(如关系型、时间序列等)。事件流本身是一个列表,如果使用像 Kafka 这样的工具,可以有多个列表(主题、分区等)。

有人认为事件驱动设计更适合从业务行为和业务活动的角度思考,而不是操作性的关系型数据存储。

有人认为该文章没有很好地阐述事件驱动设计的优缺点,没有清晰地说明在什么条件下该方法可能是合理的工具。

请注意,这些摘要是根据评论进行的总结,可能不包含所有观点和细节。


Causal Trees #

https://www.farley.ai/posts/causal

这篇文章是关于因果树(Causal Trees)的介绍和分布式系统概念的探讨。因果树是一种 CRDT(Conflict-free Replicated Data Type)算法和数据结构,用于提供最终一致性保证。它在协作应用程序和本地网络环境中被广泛使用,可以实现分布式最终一致性而无需复杂的一致性协议。本文将介绍因果树的工作原理、树结构、合并操作、遍历和删除等方面的内容。

文章链接:Causal Trees

以下是文章的摘要:

CRDTs 是一类算法和数据结构,通过遵循一些简单的数学属性提供最终一致性保证。

因果树是一种 CRDT 算法,用于处理并发更新和分布式最终一致性。

因果树使用节点之间的因果关系来构建树结构,通过合并操作将不同客户端的树进行一致性合并。

树的遍历是按照深度优先的先序遍历进行的,同时处理兄弟节点的特殊情况。

删除操作使用墓碑标记来保持一致性,被删除的节点在最终值的生成过程中被忽略。

如果您对因果树和 CRDTs 的更多细节感兴趣,可以参考文章中提供的进一步阅读链接。

请注意,以上摘要是根据文章内容生成的,可能不包含所有细节。建议阅读完整的文章以获取更全面的理解。


HN 评论 28 comments | 作者:sno6 | 22 hours ago #

https://news.ycombinator.com/item?id=38661580

这篇帖子是关于 Causal Trees(也称为 RGA)的讨论。以下是对评论观点的摘要:

mweidner 指出,Causal Trees 和 RGA 是几乎相同的算法,只是同时发布的。Automerge 使用的是 RGA 算法。

archagon 认为 Causal Trees 论文比 RGA 论文更清晰地阐述了算法,阅读起来更愉快。

hinkley 认为 RGA 是一个糟糕的名称,听起来更像是对 B-Trees 的一种新的替代方案,而不是并发数据结构。

bytearray 提出了一个问题,询问 Causal Trees 在高并发更新频率的情况下与其他 CRDT 实现相比的性能如何。他对其在协作文本应用程序中的可扩展性和实际性能表示了好奇。

mweidner 回答说,这取决于具体的实现方式,而不仅仅是 CRDT 算法本身。如果直接实现 Causal Trees(每个字符一个节点的树),速度会比较快,但会使用大量内存和存储空间。如果将字符分组成按顺序插入的字符“runs”,并且每个 run 只存储一个 Causal Tree 节点,那么效率应该会很高。

zogrodea 提到 Yjs 使用平坦数组而不是不平衡树,根据一篇长而有趣的博客文章,这样做大大提高了性能。

josephg 回应了 zogrodea 的评论,表示对使用列表而不是树的方法仍然持支持态度,并且正在努力实现和优化 CRDTs 多年,认为这是一个已经解决的问题。

practal 提出了一个关于 CRDT 设计选择的问题,并描述了他正在构建的协作编辑器的设计。他还提到了一些潜在的问题,并希望得到 josephg 的意见。

josephg 回答说,他曾在 Google Wave 中遇到了类似的问题,并提到了使用换行符而不是特殊的分割和合并操作的方法。

mattarm 对 josephg 提到的 2-10 倍速度提升表示兴趣,并希望了解更多细节。

josephg 解释了他如何通过使用自己的跳表实现(称为 jumprope)和重新计算 CRDT 结构来提高性能。

jasonjmcghee 对帖子表示赞赏,并提到在移动设备上,客户端的文本输入框强制使所有文本变得非常小,需要手动放大才能阅读。

andai 问 SoundCloud 为什么需要 CRDTs,refulgentis 提供了一个链接,解释了 SoundCloud 在时间序列事件存储方面使用 CRDTs 的情况。

CodeGroyper 问 CRDT 是什么意思,OskarS 解释了 CRDT 是冲突自由复制数据类型的缩写,用于实现类似 Google Docs 的产品,能够在断开和重新连接以及慢速同步的情况下保持弹性。

neuroderf 推荐了 pijul 版本控制,它也使用了 CRDTs。

alephnan 提出了一个问题,即如果在服务器端进行同步,为什么还要使用 CRDTs。hnb2137 回答说 CRDTs 解决了用户并发更新的问题。