Cosmos Gaia可重复的构建

Cosmos Gaia可重复的构建

​开源软件使我们能够在分布式协作软件开发过程中建立信任,以确定软件的行为符合预期并且安全。对于那些直接与源代码接触的人来说,开源的好处是最多的。这些人可以使用他们信任的计算机将源代码编译成自己的操作版本。分发二进制的开源软件会破坏这种信任模型,而可重复的构建就可以避免这种问题。

Tendermint公司正朝着值得信赖的二进制分发流程迈出第一步。我们对可重复构建的投入使得进行gaia软件的二进制分发成为可能。可以预计,Cosmos Hub社区将成为在此过程中值得信赖的合作伙伴。 基于Cosmos Hub的治理功能,Tendermint与验证者社区之间将会达成新型合作,发布可信任的二进制文件。

以下是我们的计划。

Cosmoshub-3的发布将支持我们新的可重复构建的过程。Tendermint的开发人员将会发起一个治理提议,包含所有二进制文件的哈希值。我们将要求ATOM持有者在他们控制的计算机上重复构建该版本,如果哈希值匹配, 则投赞成票。

如果提案通过,我们将通过Github发布该二进制文件。

可重复构建的好处

Gaia可重复的二进制文件为开发人员和终端用户带来了许多好处:

  • 确保可以始终从源代码构建gaia套件。
  • 使第三方能够独立验证可执行文件,以确保在构建时不会引入任何漏洞。
  • 大量的独立构建者最终可以就正确的可重复利用的二进制输出达成共识,并保护自己免遭针对性的攻击。

如何验证gaia二进制文件是否与存储库快照相对应

gaia存储库附带了必要的工具,可以构建确定的服务器和客户端程序。首先,您需要克隆https://github.com/cosmos/gaia并切换到你需要构建二进制文件的发布分支或提交ID。如果您打算为gaia主分支的所有支持平台构建并签署可重复的二进制文件,您可能需要执行以下操作:

git clone https://github.com/cosmos/gaia && cd gaia
chmod +x contrib/gitian-build.sh
./contrib/gitian-build.sh -s email@example.com all

 

如果要将签名上传到http://github.com/gaia/gaia.sigs存储库,请为上述命令追加-c标志。

如果只想在不签署构建结果的情况下构建二进制文件,只需输入:

./contrib/gitian-build.sh all

更多信息请参考:

github.com/cosmos/gaia/…/docs/reproducible-builds.md

参考资料

https://www.win.tue.nl/~aeb/linux/hh/thompson/trust.html

https://github.com/cosmos/cosmos-sdk/pull/4262

注:本文与Zaki Manian合作完成。