使用区块链进行持续集成

Using blockchain for continuous integration

我正在写一篇论文,目标是基于区块链的持续集成方法。阅读 this paper 我注意到对持续集成的理解和实现存在很大差异,尤其是在 'Definition of build failure and success' 和 'Fault handling' 方面。我的想法是使用区块链和智能合约作为开发人员拉取请求与 CI 服务器构建结果之间的投票机制。下图是我想到的。

当开发人员发送拉取请求时,会向区块链网络提议交易,该网络将构建候选发送到 CI 服务器。 CI 服务器 post 他们的结果以投票的形式返回区块链网络,并根据共识机制(多数或绝对投票)接受构建并合并分支。

然而,我是区块链世界的新手,我不清楚如何应用 PoW 或 PoS 等共识机制和智能合约。也许你们中的一些人可以帮助我回答一些问题或提供有关如何设计它的建议。

  1. 这里如何处理 PoW 或 PoS?这里到底开采了什么?交易需要成本吗?我什至需要这些东西还是我可以简单地使用区块链作为数据结构?
  2. 区块链的一个明显问题是为什么我什至会在这种情况下使用它。根据我自己的 DevOps 经验,我发现所有项目都缺乏标准和规则,以及基于角色的访问控制存在问题。这包括提高系统机制的透明度和整个项目的可追溯性。

这是我的学士论文,我并不是要彻底改变计算机科学,我的目标是更多地了解 CI 以及区块链是否可以发挥作用。以上系统的选题和设计得到了我主管的认可。

除了加密货币,使用区块链平台的主要案例是:

  • 在彼此不信任的参与者之间创建一个可信的操作环境;
  • 建立一个没有故障点的交互系统 - 技术或组织,当任何节点的消除或恶意意图不会导致整个系统无法运行时;
  • 构建廉价的分布式数据库。

就您而言,在去中心化平台的意义上使用区块链是不精确的,而且很可能是无效的。构建区块链网络的主要问题之一是确定谁将成为节点的所有者以及原因(他对此的动机是什么)。 在您的情况下,很难想出每个开发人员(或至少一组)想要拥有节点而不是使用某些集中式服务的合理原因。此外,您还有一个有保证的“集中点”——一台 CI 服务器。可能值得考虑具有多个独立 CI 服务器的基础架构。但即便如此,我仍然看不到使用去中心化解决方案的好处。

从技术上讲,在您的案例中使用区块链平台进行投票在实施几乎任何投票算法时都不会出现任何明显的困难 - 您可以使用私有以太坊、Quorum 或 Hyper Ledger Fabric。

关于你的问题(1),PoW或PoS是public区块链平台确定主链区块的技术机制。您的智能合约将在此协议之上运行,并且很可能会实施来自 BFT 组(PBFT、IBFT 等)的共识算法。