内容简介:带来了题为“分布式存储结合公链激励的工程实践”的线上分享。Genaro Network 是首个结合去中心化存储网络的图灵完备公有链,它为区块链开发人员提供了一站式解决方案,在部署智慧合约的同时,可以存储用户资料。同时,Genaro 也为每个人建立一个可靠的互联网与共享小区。
11月28日-30日每天14:00,Geekhub 技术社区将举行【Geekhub Global Online】技术公开课第三期的活动,主题为“ 分布式存储,数字基石 ”。
带来了题为“分布式存储结合公链激励的工程实践”的线上分享。
Genaro Network 是首个结合去中心化存储网络的图灵完备公有链,它为区块链开发人员提供了一站式解决方案,在部署智慧合约的同时,可以存储用户资料。同时,Genaro 也为每个人建立一个可靠的互联网与共享小区。
以下为直播文字实录,由巴比特整理发布:
大家好,我是Genaro Network(GNX)创始人吴为龙,很高兴来到这里,我今天分享的主题是“ 分布式存储结合公链激励的工程实践 ”。
分布式存储
我先来介绍一下分布式存储的概念。分布式存储指的是 使用分布式节点存储本地文件的方式 。
与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。
经典的分布式存储项目有Sia、Storj、Maidsafe、IPFS。
Maidsafe是最早的分布式存储项目,但是一直停留在α版本; Sia是一个基于POW的区块链去中心化存储的项目,以挖矿为主; Storj是一个中心化的奖励机制,即每个月storj官方根据各矿工每月的存储量来发放奖励; IPFS虽然也提供去中心化的云存储服务,但在实现机理上是在基础层而不是应用层去改变云存储。
刚才我简单解释了分布式存储的概念,现在讲一讲什么是集中式存储和云存储。
云存储本质上也是一种分布式存储,传统的云存储公司购买或租用服务器来存储他们的客户文件,同时使用RAID方案或 多数据中心的方法来保护数据的安全性。
主要有三个理由:
1.无论是计算,还是存储,分布式最大的特点就是低成本。分布式存储让最大化使用低成本的存储; 2.用了分布式存储之后,就可以用一些无服务器的系统。下一代互联网将以无服务器为起点的; 3.区块链本身存储量很大,分布式存储也可以用于链的部分。
分布式存储方法也叫分布式哈希表(Distributed Hash Table, DHT)。通俗的讲就是,在 DHT 中,某些被标记的信息,按照某种约定或协议被储存在多个分散的节点上,可以有效地避免中心化服务器宕机故障而带来的整个网络瘫痪。
和中心化服务器不同,DHT 网络中的各节点并不需要维护整个网络的信息,而是只在节点中存储其临近的后继节点信息,大幅减少了带宽的占用和资源的消耗。DHT网络还在与关键字最接近的节点上备份冗余信息,避免了单一节点失效问题。
接下来,我们来看一下 分布式存储需要实现的四个目标 :
1.DHT来保证的部分节点部分数据,路由连接; 2.节点ID和Key值的关系确定了文件存取的方向; 3.节点List按照时间顺序存储其它节点的信息; 4.主要适用于Key精确查找,很快迭代寻找。
分布式存储有两个现存的问题:
1.上述只保证了节点寻址和对应的上传下载,并没有对其存储过程进行保障; 2.需要特定共识保证系统中存储的文件都可以被下载,而不是跳转几次节点后都找不到value。
分布式存储与共识机制结合
我们发现,存储本身是有规律可循的,就是缺少共识来检验过程。这里就要引入“ 分布式存储共识 ”的概念,它指的是 能够保证文件存储后能够被下载的共识 。这个共识很可能只做一件事,就是保证这个文件能被下载。
那么这个共识能否用PoW呢?其实这并不是一回事儿,因为分布式存储的共识不等于区块链的共识。区块链共识保障的是所有区块链的节点是维护同一个表单的;分布式存储共识里是保障存储节点能够给予心跳,而不是保障所有节点维护同一个表单。
Genaro Network使用的是两个共识,因为一个共识只能做一件事。共识的设计基础:
共识设计基于分布式系统的CAP原理;链式共识主要保证了A(可用性)和P(分区容错性),每个全节点存储的是相同的东西;存储共识不需要每一个节点存储一样的东西(DHT的设计),所以需要相对独立的设计。
我们需要看在以往的工程经验中,到底有没有对存储共识的相关设计。
可收回证明(PoR,Proof of Retrievability)共识算法,是一种紧凑证明,表示文件系统(证明者)中的目标文件 F 对客户端(验证者)而言是完整的。由于使用 PoR 比传输文件 F 本身而言具有更低的通信复杂性,因此 PoR 对于构建高可靠的远程存储系统是一种颇具吸引力的构建模块。作为一种共识算法,PoR 对于云存储非常有用。
Genaro对共识做了一些改进,改进的方式是:
由于文件不能被细分成特别小的shard(过多的验证时间),所以存在重放攻击隐患;
重放攻击需要通过增加challenge来防止,需要由链部分的hash提供给辅助信息,用指纹组来代替单一指纹;
Prover部分需要额外处理,本身Prover是中心化节点,需要来保证challenge可靠性。
这就是Genaro改进Prover的思路,如何将中心化的Prover变得更去中心化呢?如上图。
在Genaro网络中,每个区块由存储活动产生,矿工被称为收据制造者(Receipt Maker),他们被节点选中为存储活动生成收据。收据见证人(Receipt Prover)为网络提供算力,证明存储有效性以获得奖励。
Genaro存储网络结构基础:
分布式存储与公链激励结合
虽然分布式存储的成本很低,但是如果存储节点还是不愿意用这么低的成本去获得收益,那该怎么办?Genaro这半年来就是尝试将分布式存储与公链激励结合起来。
首先,存储节点需要的是激励; 然后, 激励节点可以解决分布式存储的,由于成本过低导致无法长期在线的问题; 最后, 公链本身的机制是激励出块节点(写节点)。
公链激励的设计实现如下:
公链共识分为写节点竞争或者写节点轮训,无论在什么情况下都是要提供时间属性,否则轻易被分叉。比如PoS的long range attack; 存储节点的验证后,提供的心跳可以提供时间属性; 公链可以使用时间属性完成PoS中时间缺失的问题。
实现共识与激励的Genaro公链整体结构
由刚才的VM设计出的不同的opcode以及状态上的改动,这里称之为“特殊交易”或“结算方式”。把这些功能交给由RAFT组成的Tunnel,剩下的存储部分不用改变原有的情况。
那么每一次相关的心跳都是通过状态交给链,这样就能保证每一次有效存储是在挖矿。
海报预览:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 巴比特加速器技术公开课 | Storj 用纠删码解决分布式云存储数据问题
- Docker Hub 镜像加速器
- 矩阵乘法加速器的设计框架
- AI加速器的新选择
- CDN & 游戏加速器,两者是一个原理吗?
- Docker - 配置阿里云的Docker镜像加速器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。