在上篇文章中,咱们主要从价值定位、技术层次架构、服务质量、去中心化程度,和经济激励机制五个方面分析了三个项目的不一样。在这一篇文章中,咱们将着重从区块链的架构设计、数据传输技术设计和数据存储技术设计三方面继续分析。算法
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 等;而在去中心化存储项目中,这部分难度很是大,我专门将存储证实算法单独拿出来单独分析。ide
Filecoin 支持 PoRep(复制证实)和 PoSt(时空证实)。复制证实是指实际产生一次网络复制后所取得的证实;时空证实是一个文件占据了必定的空间,保存了必定的时间所产生的证实。Filecoin 是这两个证实的算法的提出者,在 Filecoin 的白皮书里,这两个证实算法的过程占据了 70% 以上的篇幅。性能
Storj 的白皮上透露的其采用的证实是 PoS(存储证实),从白皮书上看,不如 PoRep 和 PoSt 那么严谨。区块链
PPIO 也使用了 PoRep 和 PoSt 这两种更为严谨的算法。另外 PPIO 还自创了 PoD(下载证实), 主要用于对多点下载数据的证实,这种算法对流媒体传输比较友好。PPIO 在白皮书中还提过一种 LPoC(轻量级容量证实算法),来作存储节点的冷启动。不事后来官方已经决定取消 LPoC了,缘由是由于 LPoC 并不产生有价值的服务,而是像 BurstCoin 同样,在对硬盘资源作无畏地消耗,这点不符合作 PPIO 项目的初衷。优化
#3 区块链架构架构设计
PPIO 设计主链加多个合约链的架构,合约链至关于侧链。采用这样设计有两个主要缘由:
为了让性能有更好的扩展。一条链性能不够的时候,能够有多条链来扩展,侧链自己至关于作了 Sharding 技术。
为了避免同地区的内容管理的合规性考虑。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 实现了针对流媒体的由数据来驱动的特别下载算法,从而保证明时流媒体的流畅播放。
#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 目前看尚未设计相似机制。
#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 开发者社区,直接和咱们的核心开发团队面对面。