Continuous integration 使用区块链进行持续集成

Continuous integration 使用区块链进行持续集成,continuous-integration,devops,blockchain,Continuous Integration,Devops,Blockchain,我正在写一篇论文,目标是基于区块链的持续集成方法。在阅读中,我注意到对持续集成的理解和实现存在很大分歧,特别是在“构建失败和成功的定义”和“故障处理”这两个点上。我的想法是使用区块链和智能合约作为开发人员的拉取请求和CI服务器的构建结果之间的投票机制。下图是我的想法 当开发人员发送拉取请求时,将向区块链网络提出一个事务,区块链网络将构建候选发送到CI服务器。CI服务器以投票的形式将其结果发布回区块链网络,并根据协商一致机制(多数或绝对投票)接受构建并合并分支 然而,我对区块链的世界还不熟悉,我

我正在写一篇论文,目标是基于区块链的持续集成方法。在阅读中,我注意到对持续集成的理解和实现存在很大分歧,特别是在“构建失败和成功的定义”和“故障处理”这两个点上。我的想法是使用区块链和智能合约作为开发人员的拉取请求和CI服务器的构建结果之间的投票机制。下图是我的想法

当开发人员发送拉取请求时,将向区块链网络提出一个事务,区块链网络将构建候选发送到CI服务器。CI服务器以投票的形式将其结果发布回区块链网络,并根据协商一致机制(多数或绝对投票)接受构建并合并分支

然而,我对区块链的世界还不熟悉,我不清楚如何应用共识机制,如PoW或PoS和智能合约。也许你们中的一些人可以帮我回答一些问题,或者就如何设计它给出建议

  • 我如何接近PoW或PoS?这里到底在开采什么?交易是否需要成本?我是否需要这些东西,或者我可以简单地使用区块链作为数据结构
  • 区块链的一个明显问题是,为什么我会在这种情况下使用它。从我自己的DevOps经验来看,所有项目都缺乏标准和规则,并且存在基于角色的访问控制问题。这包括在整个项目中提高系统机制的透明度和可追溯性

  • 这是一篇学士学位论文,我并不想彻底改变计算机科学,我的目标是学习更多关于CI的知识,以及区块链是否能起到任何作用。上述系统的主题和设计已经我的主管批准。

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

    • 在相互不信任的参与者之间创建一个可信的操作环境
    • 当任何节点的消除或恶意意图不会导致整个系统的不可操作性时,构建一个没有故障点的交互系统(技术或组织)
    • 构建廉价的分布式数据库
    在您的情况下,在分散平台的意义上使用区块链是不精确的,很可能是无效的。构建区块链网络的主要问题之一是确定谁将是节点的所有者以及原因(他对此的动机是什么)。 在您的例子中,很难想象每个开发人员(或至少一个组)想要拥有节点而不是使用某种集中服务的合理原因。此外,您还有一个有保证的“集中点”——CI服务器。可能值得考虑一个具有多个独立CI服务器的基础架构。但即使在这里,我仍然看不到使用分散解决方案的好处

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


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

    谢谢您的回答。我理解您对节点所有权和分散点的担忧,并且目前在描述此想法的优点时也有很多困难。与您关于独立CI服务器的观点相关。其想法是通过构建区块链网络来取代TravisCI等集中式解决方案,每个节点为CI构建目的提供计算能力,并赚取交易费作为奖励。”开发商在mempool中输入构建及其奖励价格(类似于Etherum的天然气限值)后(1),然后广播到BCI网络(2)。感兴趣的工作人员执行构建(3)并相互报告结果(4)。如果他们达成一致意见(如“通过”),他们将构建添加到区块链(5)。构建任务的执行可以通过哈希和签署构建日志输出[…]作为可行的工作证明。”我觉得这很有趣,如果我的第一个概念不起作用,我想用它作为替代方案。我认为这缓解了您描述的问题。要保存和分发构建结果,您可以使用IPFS。祝你的项目好运!Спасибо друг :)