由于一份未加密的旧密钥副本被意外提交到了私有 GitHub 仓库中,Mozilla 已经更换了用于 Firefox 和 Thunderbird 相关文件(Linux tar 包、RPM 包及校验和)的 GPG 签名子密钥。 内部审计证实,由于只有授权人员能够访问该仓库,因此未发生任何未经授权的访问。旧密钥已被撤销。 **需要采取的操作:** * **手动 GPG 验证:** 手动验证签名的用户必须导入新密钥并撤销旧密钥。 * **RPM 用户(Fedora 42 及更早版本、RHEL、Rocky、AlmaLinux、openSUSE):** 这些系统上的软件包管理器不会自动更新密钥。您必须手动删除旧密钥并导入新密钥,才能继续接收更新。请使用以下命令(以 RHEL/Rocky/AlmaLinux 为例): `sudo rpm -e --allmatches gpg-pubkey-14f26682d0916cdd81e37b6d61b7b526d98f0353` `sudo rpm --import https://packages.mozilla.org/rpm/firefox/signing-key.gpg` `sudo dnf clean all` * **Fedora 43+:** 无需采取操作;系统会在下次更新时提示导入密钥。 有关密钥指纹和具体命令的详细信息,请访问官方 [Mozilla 支持页面](https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/)。
编程分布式系统——即多台计算机必须相互通信以完成某项任务——向来极其困难。开发人员经常被手动通信、复杂的漏洞以及令人头疼的测试所困扰。
**Choral** 是一种全新的编程语言,旨在通过让您将系统的“全局视图”编写为一个统一的协议来解决这一问题。您无需分别管理各个部分,而是直接定义各个角色(如 Alice 和 Bob)应如何进行交互。
以下是它成为游戏规则改变者的原因:
* **编译器承担重任:** 您只需编写一次编排逻辑。Choral 编译器会自动为每个参与者生成独立的、完全兼容的 Java 库。
* **安全性保障:** 它能在编译阶段防止分布式系统中常见的错误,例如死锁或通信不匹配。
* **易于集成:** Choral 的外观和行为与 Java 类似。您可以利用现有的 Java 库,并将生成的代码无缝嵌入到当前项目中。
* **简洁性:** 它将分布式协调的噩梦转化为简单的顺序式编程。
尽管目前仍处于研究阶段,但 Choral 已经可供那些希望以更高信心、更少代码量来编写分布式系统的开发人员使用。