当前位置:   article > 正文

《区块链支持的轻量级和高效数据来源,用于可复制的科学计算》阅读

《区块链支持的轻量级和高效数据来源,用于可复制的科学计算》阅读

SciChain: Blockchain-enabled Lightweight and Efficient Data Provenance for Reproducible Scientific Computing

1 研究背景和动机

在高性能计算系统上审计和再现科学应用的最新技术是数据溯源子系统。进展在于减少性能开销和提高用户查询灵活性,但数据出处的保真度往往被忽视---没有办法确保出处数据本身没有被捏造。

在HPC的背景下,使用基于区块链的溯源系统有不同的挑战:

1.空间效率低下,网络带宽消耗大、CPU周期被浪费在无意义的挖矿上。

2.现有的基于区块链的溯源系统构建方式:底层区块链基础设施是一个黑盒子,溯源服务通过调用

区块链基础设施提供的接口为更高级的应用程序工作,这种方式

较好的情况:溯源服务无法优化和定制

糟糕的情况:由于不能修改较低的区块链层,区块链的基础设施对HPC不适用。例如

1.计算节点没有本地磁盘,区块链不适用

2 计算密集或通信密集有不恰当的共识

3 多层存储架构不兼容

总结:一个非常理想的科学应用溯源系统应该在可靠性、伸缩性和适用性之间取得平衡。我们需要的是一个协议,这种协议要从不同的角度克服资源利用挑战,例如用更具成本效益的共识取代传统的计算密集型共识对节点实施内存约束,以限制节点间通信以降低网络开销

2 本文贡献

本文贡献:

1 提出了一种在HPC中实现安全可靠的分布式溯源的新体系结构。计算节点可以以最小的开销在本地内存中维护区块链

2 提出了一种共识机制POST 思想:共识不仅来自于其他节点,还来自远程共享存储

3 系统架构

本系统包含四个主要的结构:轻量级分布式区块链、共享存储持久化、账本同步协议、共识协议

  1. 轻量级分布式区块链:该模块可以执行块验证的过程,但是为了减少内存消耗,值保存最小数量的最近块。使用高性能网络Infiniband互联所有计算节点加快通信

  2. 共享存储持久化:充当一种持久性介质用来保存整个区块链,由于我们假设计算节点通常是易失性的,因此持久共享存储对于发生任何灾难都可以提供备份

  3. 账本同步协议:POET的扩展,支持更快的验证机制。广播时,计算节点会在内存块的支持下验证,如果超过1/2的节点验证失败,共享存储会对其进行验证该协议支持分布式账本和共享存储之间的同步

    好处:1 无论发生任何事,保护计算节点 2 通过共享存储提供可靠的保证验证

  4. 共识协议:该模块管理计算节点和共享存储之间的共识机制。共识协议利用账本同步协议来在验证过程中使用节点。好处:最大限度的减少了共识手机过程中计算节点和共享存储之间的大量通信开销。一旦51%的节点就一个区块达成共识,共识结束。

协议

本文提出的体系结构由两个并行协议组成

协议一 验证包含新溯源数据的区块---验证 协议一 POET

协议二 在验证后从节点收集共识并帮助协议一决定将区块存储在共享节点的磁盘和计算节点的内存中 协议二POST

提出的协议分为两个阶段优化内存

阶段一:push,共享存储被用来持久化整个账户副本,同时保存最小的通信开销

阶段二:pull,POET将存储节点推向更活跃的位置:每当创建新块时,首先由计算节点进行验证。如果超过50%的计算节点收到损害或无法使用内存验证新快,则共享存储将参与验证过程。

                                       

为了减少通信开销,整体共识(51%)的汇总由共享存储控制,计算节点在验证一个区块后,会将哈希投票(而不是整个区块)转发到共享存储,共享存储可以汇总整个共识,共享存储会从哈希表中选择一个节点的哈希作为新块的ID,当达到51%之后,共享存储会将最终共识与哈希投票一起广播给计算节点,以暂停进一步的验证。哈希投票使用私钥加密

                                             

为了使计算节点保持最新状态,我们使用pull方法。如果计算节点无法验证快并提供投票,就将其添加到列表ci中,如果超过50%的节点在块验证过程中都无法提供投票,则共享内存将使用来自存储节点的区块链的最新状态来更新ci中登记的节点

4 详细设计

4.1 协议一 POET

                   

  1. 检查是否可以使用计算节点内存中的最近区块来验证新的溯源记录

  2. 如果不能验证,则将其添加到不可用节点列表中

  3. 如果超过一半的节点发生故障,则存储节点会介入使用pull方法继续验证。从Db中更新最新的区块

  4. 当达成共识数超过50%,区块才会同时存储在计算节点和共享内存中。在追加区块之前,将计算节点的内存区块链中删除最旧的区块一旦达到50%共识立刻技术共识过程

协议一的优点:

1 由于内存的支持,计算节点达成一致可以实现更快的验证。

2 如果超过一半的计算节点发生故障或无法达成共识,来自用作可靠持久化介质的共享存储

可以提供扩展和稳定的验证支持。 时间复杂度O(|C|)。与原始的POW相当,但大多数情况下,由于我们在达到51%共识时立即停止,因此可以减少迭代次数。

4.2 协议二 POST

协议二确保大多数计算节点验证新提议区块的有效性,为了避免重复验证,只有区块在未被验证的情况下,才会启动新的区块验证和共识收集过程。

                      

  1. 如果区块b没有在内存Db中,说明这个块是新的,启动验证和共识过程,所有的节点都会验证,每个节点在验证后都会提供一个投票

  2. 如果超过50%的新节点同意新区块的有效性,则停止下面的共识,将新块添加到共享存储和计算节点中

  3. 如果至少51%的计算节点无法达成共识,则存储节点通过协议1进行验证。为了减少成本,只要至少51%的计算节点达成共识就会停止共识获取过程。

5 试验评估

评估系统:SciChain与其他两个区块链比较第一个区块链部署在10个节点组成的共享式集群上的传区块链系统,这些节点通过以太网连接第二个区块链是仅限内存的区块链与所提出的系统一样部署在相同集群上,但是没有持久化存储。这当然不是一个实用的解决方案,但是Scichain的性能上限

5.1 可靠度和可信度

我们用随机交易运行系统原型 10 分钟,并重复执行 15 次。所有 15 次执行都导致超过 50% 的节点持有正确的区块链:其中 13 次执行的有效性超过 90%,而另外 2 次执行的有效性比率较低,因为一旦超过 50% 的节点持有正确区块,我们就终止了执行。

5.2 overhead

基线方法没有将数据来源持久化到磁盘,没有安全性保护。

SciChain在20个40节点的小规模下产生的开销是明显的。这是我们为实现高安全性所必须付出的代价。在100时,开销仅为15%,Scichain的开销比例不会显著增加。

POST中:一个块在多数投票合格后只会被持久化一次。规模越大,POST将验证重定向到共享存储的机会就越少,这会产生合理的开销

5.3 可扩展性

改图报告了三种系统在20 40 60 80 100节点规模上的性能。可以看到仅存储器的区块链实现了最高的性能。在100个节点时,scichain和仅有存储器的区块链一个是157ms一个是311ms,在相同的数量级,但是传统的区块链比scichain慢的多。所以说scichain与传统的区块链相比有明显的加速

6 结论和今后的工作

本文提出了一种新的区块链共识协议,即POST,为部署到HPC系统的科学应用程序提供不可变和自主的数据来源。POST在一个名为SciChain的原型系统中实现,这是第一个实用的HPC区块链系统,用于HPC中的可信数据来源。POST的有效性和效率通过在多达100个节点上的两个微基准测试进行了实验证明。

未来工作:

1 当前POST协议没有考虑到底层数据移动的能量消耗

2 目前不清楚如何将存储在一个特定Scichain实例中的数据迁移至另一个实例

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号