手机版
你好,游客 登录 注册
背景:
阅读新闻

Golang 1.13 模块镜像,索引和校验数据库现在可以投入生产了

[日期:2019-09-03] 来源:Linux公社  作者:醉落红尘 [字体: ]

上周,Golang团队宣布Go module 镜像,索引和校验数据库现已投入生产,从而为Go生态系统增加了可靠性和安全性。 对于Go 1.13 模块用户,go命令默认使用模块镜像和校验数据库。

适用于Go 1.13 module

module 镜像

module 镜像是一种特殊的模块代理,它将元数据和源代码缓存在自己的存储系统中。 这允许镜像继续提供原始位置不再可用的源代码,从而加速下载并保护用户免受消失的依赖性。

根据团队的说法,模块镜像在proxy.golang.org上提供,go命令将默认为模块用户使用Go 1.13。 对于仍在运行早期版本的go命令的用户,他们可以在他们的本地环境中通过设置GOPROXY=https://proxy. golang.org来使用此服务。

模块索引

模块索引由index.golang.org提供。它是通过proxy.golang.org提供的新模块版本的公共源代码。模块索引对于希望保留自己在proxy.golang.org中可用内容的缓存的工具开发人员非常有用,或者能够及时了解开发人员使用的一些最新模块。

校验数据库

模块引入了go.sum文件,源代码的SHA-256哈希列表以及首次下载时每个依赖项的go.mod文件。 go命令可以使用这些哈希来检测原始服务器或代理的错误行为,该服务器或代理为同一版本提供不同的代码。但是,go.sum文件有一个限制,它完全基于用户首次使用的信任。当用户添加以前从未见过的依赖项的版本时,go命令会获取代码并快速向go.sum文件添加行。问题是那些go.sum行没有被别人检查,因此它们可能与go命令刚刚为其他人生成的go.sum行不同。

校验数据库确保go命令始终向每个人的go.sum文件添加相同的行。每当go命令收到新的源代码时,它都可以针对此全局数据库验证该代码的哈希值,以确保哈希值匹配,从而确保每个人对给定版本使用相同的代码。

校验数据库由sum.golang.org提供,构建在由Trillian支持的哈希的透明日志(或“Merkle树”)上,Trillian是一个透明,高度可扩展且可加密验证的数据存储。 Merkle树的主要优点是它具有防篡改功能,并且具有不允许不被发现的不良行为的特性,使其更加值得信赖。 Merkle树在将新的go.sum行添加到用户模块的go.sum文件之前检查包含证明(如果日志中存在特定记录)和“一致性”证明(树没有被篡改)。

这个校验和数据库允许go命令安全地使用其他不可信的代理。因为它上面有一个可审计的安全层,所以代理服务器或源服务器不能故意、任意或意外地开始提供错误的代码而不被捕获。

要详细了解此新闻,请阅读官方博客文章

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-09/160490.htm

linux
相关资讯       Golang 1.13 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款