开源代码托管平台 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/foobaz@v0.0.0-20230108094957-81402546c10e: verifying module: git.sr.ht/~sircmpwn/foobaz@v0.0.0-20230108094957-81402546c10e: reading https://sum.golang.org/lookup/git.sr.ht/~sircmpwn/foobaz@v0.0.0-20230108094957-81402546c10e: 404 Not Found
	server response:
	not found: git.sr.ht/~sircmpwn/foobaz@v0.0.0-20230108094957-81402546c10e: 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 镜像的访问。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/224539/sourcehut-blacklist-gomodulemirror

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。