开源代码托管平台 SourceHut “拉黑”Go Module 镜像


开源代码托管平台 SourceHut 宣布把 Go Module 镜像列入“黑名单”,并将于 2023 年 2 月 24 日禁止对 Go Module 镜像进行 git 访问。

据介绍,从 2 月 24 日开始,用户在从 SourceHut 仓库导入模块的 Go 软件包上使用go get或类似命令时,将会遇到类似于以下的错误消息:

$ go get
go: downloading git.sr.ht/~sircmpwn/foobaz v0.0.0-20230108094957-81402546c10e
go: git.sr.ht/~sircmpwn/[email protected]: verifying module: git.sr.ht/~sircmpwn/[email protected]: reading https://sum.golang.org/lookup/git.sr.ht/~sircmpwn/[email protected]: 404 Not Found
	server response:
	not found: git.sr.ht/~sircmpwn/[email protected]: invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/vcs/568e5edafe93f7887c0b6f718b0f17ea91c63c35822fb28628535f172b5429b7: exit status 128:
		fatal: unable to access 'https://git.sr.ht/~sircmpwn/foobaz/': The requested URL returned error: 429

解决方案:

$ export GOPRIVATE=git.sr.ht
$ go get # works

有关更多详细信息,请继续阅读。

对于 Go 开发者来说,他们需要通过 git 获取 Go Module,因此开发者使用git.sr.ht/~sircmpwn/dowork”进行导入将会由工具链通过 git 获取相应的仓库,以使其在用户的 Go 环境中可用。每个请求都通过 proxy.golang.org 上的代理服务进行路由,该服务提供了许多功能:

  • 通过 Google 的缓存提供可靠和快速的 Go Module 下载访问
  • 存储 Go Module 的冗余副本以确保可用性
  • 为校验数据库 (checksum database) 记录其校验的独立来源
  • 提供新 Go Module 的索引

但这带来了许多缺点。例如大多数 Go 开发者并不知道他们获取的每个软件包都伴随着对 Google 服务器的请求,这意味着需要和 Google 确保信任关系来返回真实的软件包。此外,如果底层的源仓库消失或与缓存不同步,这个问题对 Go 开发者来说是不可见的,这可能会导致他们的软件依赖于不再存在的模块或模块版本。

对于 SourceHut 来说,代理服务会定期从源码仓库中获取 Go 软件包,以检查是否有更新。这些请求来自许多服务器,它们没有相互协调以减少其工作,并且频率可高达每小时 2500 次,往往一次就有十几个克隆,而且通常是高度冗余的:一个 git 仓库每小时可被取用 100 次以上。

SourceHut 表示,这些流量会产生过大的后台工作负载。他们曾联系 Go 团队合作寻求解决方案,但没有成功。因此,他们决定屏蔽 Go Module 镜像,等到上述问题解决后会重新恢复对 Go Module 镜像的访问。


相關推薦

2022-11-04

 开源代码托管平台 SourceHut 宣布更新服务条款,自 2023 年生效;其中对用户影响最大的一项变化是,该平台上将禁止加密货币或区块链相关的项目。SourceHut 创始人兼创建者 Drew DeVault 解释称,禁止这些技术相关项目的

2023-11-09

企业快速上云,快速迭代。适合用于微服务学习和商用,开源免费。 Simple Admin Core/Job/MCMS/FMS v1.2.2 更新 介绍 核心模块 Core, 定时任务模块 Job, 消息中心模块 MCMS, 以及文件管理模块 FMS 均已升级至 v1.2.2 本次更新 修复:mysql a

2022-12-08

集用户数据的恶意行为。 调查发现,这些软件中的恶意代码都是由 Measurement Systems 开发的,他们的 SDK 包含这些恶意代码,而且 Measurement Systems 还与一家为美国政府从事网络情报和情报拦截工作的承包商之间存在联系。 进一

2022-11-21

成。 云镜像 官方 Rocky Linux 镜像现已支持在 Oracle 云平台上使用。 所有构建的镜像背后的工件现在都被导出以供开发使用。 通用、EC2 和 Azure 镜像的 LVM 变体现已可用。 升级和迁移教程 Rocky Linux 8 的当前用户使用dnf up

2023-09-22

了充分利用此文档,请确保通过阅读教程和管理 Module 源代码熟悉 Go Module 的基础知识。

2024-01-16

b  ——  一个旨在解决大模型相关资产治理难题的开源项目。 CSGHub的使命是为用户提供一个开源开放的、针对大模型原生设计的资产管理平台,支持私有化部署和离线运行。我们的目标是为用户创造一个安全、高效且可

2022-12-02

会在 go list 运行时暂停,在索引编制完成之前您无法访问代码洞察功能。 此前,GoLand 在某些情况下会运行两次 go list。 我们更改了 API,减少了 go list 启动的数量。 我们希望这一改变能够显著提高具有许多模块的大型项目的性

2022-04-06

,因此这种对依赖关系树的改变通常都是刻意为之,可在代码审查阶段被发现。 这对于安全性非常重要,如果一个模块被入侵并发布了一个新的恶意版本,那么在明确更新该依赖项之前,任何人都不会受到影响,从而为生态提

2022-07-31

,SQL 语句现在可被自动检测,还带来了针对它们的全面代码辅助。 GoLand 现已支持 WebSocket 连接,并且可以通过 HTTP 和 WebSocket 协议发送 GraphQL 查询。 泛型 将空接口转换为 any 的意图操作 GoLand 的新增检查可以将空接口的用

2022-10-21

建器 ko 作为沙箱项目提交给 CNCF。ko 是谷歌在 2019 年开源的 Go 应用程序的简单、快速和安全的容器镜像构建器,最近还添加了一些新功能,包括多平台支持和自动 SBOM 生成。 就像谷歌的 original team 一样,现如今许多

2022-05-24

例如,Github被墙,而墙内的Gitee最近又搞了中国特色的开源审批制,让很多人都产生了自建Git代码托管服务的需求。如果您想要启动一个私有的代码托管服务,可以使用以下命令一键拉起 Gitea: cd ~/pigsty~app/gitea; make up 该命

2022-06-08

容。 脚本化的风格,以及比 Go 更易于阅读的数据科学代码。 支持字节码后端和 Go 代码生成。在字节码模式下,Go+ 不支持 cgo。然而,在 Go 代码生成模式下,Go+ 完全支持 cgo。 新版本亮点 1. 引入 https://github.co

2022-07-12

Dapr 是一个开源、可移植的、事件驱动的运行时,可以帮助开发人员构建在云和边缘上运行的弹性的、微服务的、无状态和有状态应用程序,并且关注于业务逻辑而不用考虑分布式相关的问题。 近日 Dapr 1.8 正式发布,这是自 202

2024-07-24

构建系统 moon 启动于 2023年5月,今天正式在 GitHub 平台上开源!遵循 AGPL 开源协议。 开源信息:https://github.com/moonbitlang/moon  值得一提的是,发布近一年来 MoonBit 不仅在国内获得用户青睐,更在海外引起广泛关注,获得海外