在上篇文章中,我们主要从价值定位、技术层次架构、服务质量、去中心化程度,和经济激励机制五个方面分析了三个项目的不同。在这一篇文章中,我们将着重从区块链的架构设计、数据传输技术设计和数据存储技术设计三方面继续分析。

区块链架构

Storj 仅使用 ERC20 的 Token 来标识其存储节点的贡献,而平台本身没有区块链的支持。因此其客户端(Client/User)与存储节点(Storage Node/Miner)之间的交易是通过中心化的服务节点(Satellite)来完成。因此严格的说,Storj 并不是一个公链项目,是基于以太坊上一个应用。Filecoin 和 PPIO 则都拥有自己的链,并且不仅实现了价值在链上的流通,而且交易和证明也在链上完成,是真正意义上的基于区块链的存储和分发平台。

#1 共识算法

Filecoin 在设计上一开始就是去中心化的,发明了一种叫做 EC 的共识算法。Storj 没有自身的共识算法,使用的是以太坊公链的算法。PPIO 在完全去中心化阶段将使用 VRF 和 BFT 结合的方式,比较类似于 Difinity 公链的机制。而 PPIO 在前期为了简化技术难度,采用比较中心化的 DPoS 共识算法。

#2 存储证明算法

在普通的公链项目中,共识算法和证明算法是一体的,如 PoW,PoS 等;而在去中心化存储项目中,这部分难度非常大,我专门将存储证明算法单独拿出来单独分析。

  • Filecoin 支持 PoRep(复制证明)和 PoSt(时空证明)。复制证明是指实际产生一次网络复制后所取得的证明;时空证明是一个文件占据了一定的空间,保存了一定的时间所产生的证明。Filecoin 是这两个证明的算法的提出者,在 Filecoin 的白皮书里,这两个证明算法的过程占据了 70% 以上的篇幅。

  • Storj 的白皮上透露的其采用的证明是 PoS(存储证明),从白皮书上看,不如 PoRep 和 PoSt 那么严谨。

  • PPIO 也使用了 PoRep 和 PoSt 这两种更为严谨的算法。另外 PPIO 还自创了 PoD(下载证明), 主要用于对多点下载数据的证明,这种算法对流媒体传输比较友好。PPIO 在白皮书中还提过一种 LPoC(轻量级容量证明算法),来做存储节点的冷启动。不过后来官方已经决定取消 LPoC了,原因是因为 LPoC 并不产生有价值的服务,而是像 BurstCoin 一样,在对硬盘资源做无畏地消耗,这点不符合做 PPIO 项目的初衷。

(三个项目的区块链架构对比)

#3 区块链架构 

PPIO 设计主链加多个合约链的架构,合约链相当于侧链。采用这样设计有两个主要原因:

  1. 为了让性能有更好的扩展。一条链性能不够的时候,可以有多条链来扩展,侧链本身相当于做了 Sharding 技术。

  2. 为了不同地区的内容管理的合规性考虑。PPIO 的定位是公司,考虑要遵守不同国家的法律,可能需要不同国家部署独立的合约链,可以支持实现的合约细节上有些不一样。

#4 上链信息

传说中区块链中一旦数据写入区块(这个过程也被称为上链),就不能删除,不可篡改。事实确实如此,区块链本质就是分布式数据库,全世界千万台机器都同步和认可了的信息,是不能删改的了。所以一提到存储区块链,大家的直觉就是既然需要存储的数据内容上链了,是不是存储的内容也就不能删除、不可修改。答案是否定的。Filecoin,Storj,PPIO 都没有将实际存储的内容写入区块链。所以说,实际存储的数据是可以删除和修改的。

那么存储在这三个公链上的信息是什么呢?

  • Storj 是基于 ETH 公链实现的,上链的信息都写在 ETH 上的 Stroj 合约里面,这是著名 ERC20 合约,所以说上链的只有资产和交易。

  • Filecoin 除了资产和交易外,还上链了证明信息。Filecoin 的合约则全部在链下完成,不上链。

  • PPIO 不仅仅上链了资产、交易、证明,还上链了合约。

 传输技术

#1 重叠网络

  • PPIO 支持重叠网络(Overlay网络),每个存储节点(Storage Node/Miner)都会将与自己物理连接较快的存储节点作为自己的邻居,在数据传递和信息交互过程,充分发挥临近节点的优势,使得网络效率大大提高。

  • Storj 目前并未设计类似支付网关的功能。

  • Filecoin 中本身也没有提供类似支付网关的功能。但这一功能有可能通过第三方开发者在上层实现。

#2 流媒体传输的优化

  • Filecoin 和 Storj 都是针对文件下载,没有考虑对流媒体做特别的处理。

  • PPIO 实现了针对流媒体的由数据来驱动的特别下载算法,从而保证实时流媒体的流畅播放。

(PPIO 的传输算法)

#3 P4P 技术的支持

全称 Proactive Network Provider Participation for P2P,在加强相同服务供应商(ISP)内网络流量的同时,降低了骨干网络传输压力和运营成本,从而也提高了 P2P 文件的传输性能。与 P2P 随机挑选节点的方式不同,P4P 模式可以协调网络拓扑数据,有效选择节点,从而提高网络路由效率。

PPIO 团队之前在做 PPTV 的时候有个丰富地和运营商打交道的经历,采用了 P4P 的技术,Filecoin 和 Storj 在设计上没有考虑 P4P。

#4 热门内容的自适应调度

PPIO 支持 P2P-CDN。在 P2P-CDN 里面,热门内容的自适应调度是非常重要的,也是提高服务质量(QoS)的重要手段。热门内容的自适应调度就是当一个文件在网络中变得受欢迎之后,系统会自动触发调度机制,让更多的存储节点存储这个文件。这样的设计既能提高用户体验,也能提高更多存储节点的收益。反之,当很受欢迎的文件失去热度之后,系统则会自适应地减少存储此文件的存储节点的数量。这样就形成一种动态的平衡。PPIO 在热门内容调度算法上下了很大的功夫。Filecoin 和 Storj 目前看还没有设计类似机制。

(PPIO 热门内容自适应调度)

存储技术

#1 纠删技术

PPIO 实现的是全副本和纠删并存的方式;Storj 是纯纠删码模式;Filecoin 也许不考虑这个问题。

要理解这个问题,首先要明白纠删码对存储系统来说非常重要。通过纠删技术能够大大地降数据的不丢失率,专业的指标叫做耐用性(Durability)。纠删技术是把文件适当扩大后,分割成 n 份,只要有其中的 k 份,就能恢复出完整的文件。如果把这 n 个分片分别放在不同的机器上,即使有 n-k 台机器下线也不会影响文件恢复。

因为 PPIO 的定位是存储与分发,所以在上层对于文件的分片设计了纠删码和全副本双模式。全副本主要用于做分发,因为全副本传输是能够保证获取数据的效率,最快拿到数据。而纠删是能够更好地保证数据不丢失的。即使在矿工数量很不稳定,采用纠删码技术也可以在很少冗余的情况,做到很高的耐用性(俗称11个9)。

#2 基于 Overlay 网络存储节点优先选择

存储节点的选择,可类比为 BitTorrent 下载中 Tracker 的功能,专门配合资源和用户。

  • PPIO 设计了基于网络距离来优先选择存储节点的算法。这一算法是多维度的,不仅考虑了网络距离(有重叠网络中得到的),还要考虑价格、承诺时间、节点稳定性、节点信用值等历史情况。但网络距离是第一考量因素。

  • Filecoin 的定位是基础设施,存储和证明是配套的。Filecoin 的供给端和需求端完全是链下自行匹配的,有签名和证明就能获得奖励。也就是说,整个 Filecoin 设计上没有一个类似于 BitTorrent Tracker 的角色用来匹配资源和矿工之间的关系。

  • Storj 在这一点没有透露太多的细节。但这个问题 Storj 一定考虑过的,因为每一个 P2P 项目都要考虑节点的选择问题。

以上就是这三个项目的八大异同点,用一张图为大家总结:

(三个项目的异同总结)

如果你有更多问题,欢迎给我们留言,或加入 PPIO 开发者社区,直接和我们的核心开发团队面对面。

去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(下)的更多相关文章

  1. 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目异同

    Filecoin,Storj 以及 PPIO 这三个存储公链的设计思路是不一样的,没有优劣之分,写这篇文章也并不是为了争论各项目的好坏对错.去中心化存储是一个长期商业赛道,不同团队在同一个赛道上往不同 ...

  2. 去中心化存储的QoS是什么?

    我的前面一篇文章讲到如何做去中化存储,文其中提到了QoS (Quality of Service),那么QoS是什么?为什么QoS那么重要?下面将详细描述. 什么是QoS? 提到QoS,就要先了解Qo ...

  3. PPIO去中心化存储的了解和记录

    目录 介绍 FileCoin P2P技术给去中心化云存储的好处 剩余资源的再次使用 市场竞争会激发民间的智慧 PPIO的2种冗余模式 全副本模式 纠删副本模式 为什么PPIO要设计支付代理节点? 一些 ...

  4. 人物传记STEPHEN LITAN:去中心化存储是Web3.0生态重要组成

    近期,NGK.IO的开发团队首席技术官STEPHEN LITAN分享了自己对去中心化储存的观点,以下为分享内容. 目前的存储方式主要是集中式存储,随着数据规模和复杂度的迅速增加,集中存储的数据对于系统 ...

  5. Filecoin:一种去中心化的存储网络(一)

    开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...

  6. NGK DeFi项目即将上线,打造去中心化闭环金融生态!

    据最新官方消息称:NGK已于近日宣布将进军DeFi领域,NGK此次的DeFi的项目将会是一个去中心的交易平台,其最大的功能是进行数字货币的交换.在用户选择了需要支付的数字货币和想购买的数字货币后,系统 ...

  7. 为什么比特币和以太坊未必真得比EOS更去中心化?

    在区块链行业里,有两派人一直在争论:一个是以比特币和以太坊为首的社群,另一个是以EOS为首的社群.这两群人一直在争论谁才是真正的未来,双方都认为自己这边更有未来.其中EOS抗争的重点就是100万TPS ...

  8. Carthage:去中心化的Cocoa依赖管理器

    Cocoa的依赖管理器,我们已经有了CocoaPods,非常好用,那么为什么还要创建这样一个项目呢?本文翻译自Carthage的Github的README.md,带大家来了解一下这个工具有何不同之处. ...

  9. Filecoin:一种去中心化的存储网络(二)

    开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...

随机推荐

  1. 面试知识点准备-C++常见问题

    博客园写写格式简单的文章还行,格式一复杂就不行了,可能是我不会用吧,我有强迫症,有道云格式很好用,以后去有道写这种东西了 有道云笔记链接:http://note.youdao.com/noteshar ...

  2. 高分一号计算NDVI

    1.准备工作 如果想要ENVI友好一点,请下载ENVI5.3,并且安装China satellites 补丁(参考博客:ENVI扩展工具:中国国产卫星支持工具) App Store for ENVI下 ...

  3. 基于selenium+phantomJS的动态网站全站爬取

    由于需要在公司的内网进行神经网络建模试验(https://www.cnblogs.com/NosenLiu/articles/9463886.html),为了更方便的在内网环境下快速的查阅资料,构建深 ...

  4. String与Integer问题

    今天分享一下关于最近面试的问题,临近春节,而我在茫茫人海中奔波,今天面试了来到了中关村科技园,挺气派的,之前也是在外面看看,今天就去了,心里有点激动,恰好,正好赶上了上班时,看见它们的努力,我感到再累 ...

  5. 在PL/SQL中调用Oracle存储过程

    存储过程 1 什么是存储过程? 用于在数据库中完成特定的操作或者任务.是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用. 2 存储过程的参数模式 存储过程的参数特性: IN类型的参数 ...

  6. 微信公众号服务器配置url二次修改

    最近微信公众号配置的服务器的域名和云服务到期,就想着更换到别的域名下的服务器:修改的时候出现token验证失败: 我同样的微信签名验证代码在以前服务器上是没问题的,但是修改到新的域名地址时候,总是提醒 ...

  7. JAVA日常之二

    一.装箱.拆箱 int i=1; Integer iobj=i;(自动装箱) 简单理解为,将基本数据类型(i)经过装箱变成对象(iobj): Integer iobj; int i= iobj;(自动 ...

  8. Springboot 部署到linux(二)

    之前写了一篇部署的文章,但是打包时会运行所有的单元测试,如果不想测试的话,可以采用这种方式. 第一部分:打包 1.pom.xm添加配置 <plugin> <groupId>or ...

  9. 简述iproute家族命令

    ifconfig 是用来查看.配置.启用或禁用网络接口的工具.可以用这个工具来临时配置网卡的IP地址.掩码.广播地址.网关等. 语法 ifconfig [interface] 参数 up 启动指定网络 ...

  10. CF D.Mister B and Astronomers

    题意概括好麻烦, 好吧既然是英文题面那放一下题意. 题意:有 n 个观察员,第一个观察员在 0 秒开始观察星空,随后第i 个观察员会在第 i − 1 个观察员之后 ai 秒观察,第一个观察员也会在第 ...