去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目异同
Filecoin,Storj 以及 PPIO 这三个存储公链的设计思路是不一样的,没有优劣之分,写这篇文章也并不是为了争论各项目的好坏对错。去中心化存储是一个长期商业赛道,不同团队在同一个赛道上往不同的小方向分别探路是一件好事。因为不论哪个项目能最终获得成功,从大方向上来说都是分布式存储的胜利。但不一样的思路确实会影响实现的方法,本篇文章将着重介绍这些项目在**实现方法及使用技术上**的差别。
先简单介绍一下这三个存储公链:
- Filecoin(https://filecoin.io)一种开源的公共数字货币和数字支付系统,目的是用区块链建立一个数字存储和数据检索的方法。
- Storj(https://stroj.io)一个去中心化的云对象存储,特点是便宜、易用、隐私、安全。
- PPIO(https://pp.io)一个为开发者提供的去中心化存储与分发平台,更便宜的价格,更快的传输速度和更好的隐私保护是最终目标。
下面我将从八个方面来比较这三个项目:
> 价值定位
现在区块链公链项目面对的最大难题是落地场景。大部分公链项目烦恼的不是技术难题,而是无法做出一款受欢迎的产品。而存储以及相关服务是有可能产生可落地的现象级区块链应用的场景之一。
去中心化存储不同于传统数字货币项目。拿比特币和以太坊来说,他们都是以计算为核心的数字货币,合约是其核心,即全网只要找到一个节点来执行合约或打包交易,这个节点就是出块节点。而比特币和以太坊的共识就是选出这个出块节点。但是去中心化存储是完全不同的。它的本质是共享经济。要有使用服务的需求方以及提供服务的供给方,类似于 Uber 和 Airbnb 的模式。
从价值的角度看,去中心化存储其实是有数据存储和数据分发两个维度。存储就是把数据存到网上,等需要的时候再从网上获取。做数据存储可能要满足的需求有:备份、多设备同步、小范围分享文件、以及保存本地保存不了的文件。数据分发是把数据快速推送给需要的人,可能的应用需求有:大范围分享、下载、点播、直播、视频会议、VPN 等。数据存储主要共享的是硬盘,而数据分发主要共享的是带宽。
- Filecoin 为存储和分发都做了设计。它的存储矿工用于存储场景,而检索矿工用于分发场景,但 Filecoin 更关注在存储上。
- Storj 是专注做存储场景的,它所有的设计都是为存储考虑的。
- PPIO 和 Filecoin 一样,同时兼顾存储和分发,但更重点关注的是分发场景。PPIO 很快会在应用层增加流媒体输出能力,支持主流的点播和直播方案。
> 技术层次架构
在技术架构上,Storj 和 PPIO 的定位比较接近,他们是直接为一线开发者提供服务的。例如,Storj 和 PPIO 都支持以 Object 为核心的存储接口,并且兼容 AWS S3 接口。PPIO 还兼容 OSS 接口,并提供用户体验更好的 POSS 接口,让开发者在使用 AWS S3 接口的时候更加方便。可以看出 PPIO 和 Storj 是产品化的思路,他们是要给开发者提供一个好的、易于开发的产品。
Filecoin 仅仅完成了存储和带宽层的功能,定位是基础设施。具体来说,Filecoin 提供的仅仅是存储市场,用户可以在 Filecoin 买到原始的存储。如果一线开发者需要从 AWS S3 的服务迁移到 Filecoin,需要对原有软件架构作调整。再更简单一点,Filecoin 提供的是 AWS S3 的底层。将来可能发生的情景是:AWS S3 从 Filecoin 的存储市场中购买存储空间来取代他自己的机器,在此之上实现 AWS S3 的服务后再对应用开发者输出。
所以说,PPIO 和 Storj 是做产品的思路,做的是直接 toB 的产品,实现全栈,开发者在使用 SDK 后能够简单快速地开发。类似 Google 的操作系统 Android 的地位。而 Filecoin 是建设生态的思路,做的是存储基础设施。相信之后会有其他开源组织来完善生态的每个环节,最终完成帮助 Filecoin 完成全栈。Filecoin 可类比 Linux 原生的操作系统。Android 是包含了 Linux 内核的,这也是全栈和基础设施的区别。
> 服务质量(QoS)
前面提到了去中心化存储不同于传统数字货币,前者的本质是共享经济。共享经济模式是要真真实实地提供服务的。所以建设去中心化存储项目不得不涉及到服务质量的讨论,从开发角度来说就是 QoS 指标。拿滴滴打车做比喻,如果滴滴总是打不到车,或者打到的车总是绕路或者违约,那还有人会去使用滴滴吗?它之所以大受欢迎和它提供的高质量服务有关。去中心化存储与分发也是一样的。去中心化存储想要做成功,关键在于用户或者开发者使用去中心化的存储过程中的用户体验是否能够好于云服务,至少说是否能在某个领域好于云服务。如果用户体验没办法做好,去中心化存储最终是没有价值的。只有当某个项目能够做到比云服务更好的体验,它才是颠覆式的创新。
我这里说的 QoS,不是指区块链技术里面常提及的 TPS 指标;而是可以对标传统云服务的 QoS 指标。例如服务的可用性、可靠性、耐用性以及返回试验、下载速度、下载第一个字节所需时间,等等。对于实时流媒体播放来说,指的是节目源延迟时间、开始启动播放的时间、播放过程中卡顿次数和卡顿时间等。
在三个项目中,PPIO 是最注重服务质量的,PPIO 的所有设计也都是围绕 QoS 进行的。同时,PPIO 拥有完善的 QoS 服务质量体系,在这套体系下 PPIO 网络能进行不断调优和改进,从而保证 PPIO 网络越来越稳定可靠。
Storj 在白皮书和官方发布的文章中,也讨论过一些核心存储指标,比如耐用性(Durability)的测算,可以看出 Storj 对 QoS 有一定程度的关注。
就 Filecoin 目前公布的资料,不论是白皮书还是代码,都没有提到和服务质量相关的想法。整个团队还在忙于基础建设工作,但不排除未来 Filecoin 会做 QoS 相关设计的可能性。
> 去中心化
三个存储公链里面, Filecoin 是直接一步到位完全去中心且完全开源的;PPIO 则选择逐步实现去中心化并逐步开源;而 Storj 目前除了 Token 是基于以太坊 ERC20 发行的去中心货币以外,存储的调度索引系统仍是中心化设置,目前不确定 Storj 后续是否会更加去中心化。
PPIO 选择逐渐去中心的方案,是有以下几点考虑的:
1. 区块链中的证明机制非常复杂,需经过长时间的检验之后才能达到安全且高效的要求。
2. 服务质量是需要一步一步进行优化的,所以其算法需要在优化过程中进行更加灵活地调整。
3. 区块链项目的经济策略非常重要,需要测试、更新和迭代。
> 经济激励设计
1 检索市场(带宽市场)
PPIO、Storj 和 Filecoin 都支持用户间的下载交易,即下载服务的提供者(Storage Node / Miner)和下载服务的使用者(User)之间的交易。前者向后者提供数据下载服务,后者向前者支付下载费用。其中,Storj 有带宽市场,但是下载的时候,必须携带 Satellite 的签名。服务费用在 Satellite 那里结算。但 Storj 没有 CDN 市场。
2 撮合市场
- *Stor 采用做市商模式,即服务需求方(Client / User)直接向 Storj 平台支付款项,然后获得服务。而服务提供方(Storage Node / Miner)从 Storj 平台获得 Token 和报酬。这种交易模式是一种中心化的交易模式,特点是效率较高,但去中心化和透明程度不够。
- Filecoin 则采用了撮合模式,所有的服务需求方(Client / User)和服务提供方(Storage Node / Miner)在 Filecoin 的市场(包括存储市场和检索市场)上自由配对交易,是一种完全去中心化的模式。
- PPIO 平台则比较灵活,User 和 Miner之间可以在链下自由匹配,也可以委托第三方调度平台进行调度和撮合。PPIO 自身也研发调度平台来分配资源和节点。
3 代理支付节点
传统互联网产品的使用者对于存储或者带宽服务的理解是套餐模式,即用户可一次性支付一定数额的法币在一定时间内使用一定上限数量的服务。例如40元/月可使用 5T 存储空间,30元/月使用 500G 流量等。而在区块链世界里,一切服务都是按实际使用量服务,用多少付多少。服务产生证明,用证明作为收费的依据。这两种模式存在天壤之别。
- PPIO 创新性地引入支付网关这一角色。支付网关可利用经济精算手段,将区块链上不确定性较大的存储服务,转化成对于用户来说确定性较大的存储服务(套餐模式),从而减少了用户从互联网迁移到区块链的迁移成本和认知成本。
- Srorj 直接接受法币支付,而且也没有对接区块链上的服务和结算,因此没有用户迁移方面的问题。
- Filecoin 解决了链上的服务和结算,但似乎没有考虑与传统互联网产品的对接。
本篇文章主要从价值定位、技术层次架构、服务质量、去中心化程度、经济激励机制五个方面分析了三个项目的不同。在下一篇文章中,我们将从区块链的架构设计、数据传输技术设计、数据存储技术设计三方面继续分析这三个项目的异同。请订阅我们的公众号PPIO,获得及时更新。
去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目异同的更多相关文章
- 去中心化存储项目终极指南 | Filecoin, Storj 和 PPIO 项目技术对比(下)
在上篇文章中,我们主要从价值定位.技术层次架构.服务质量.去中心化程度,和经济激励机制五个方面分析了三个项目的不同.在这一篇文章中,我们将着重从区块链的架构设计.数据传输技术设计和数据存储技术设计三方 ...
- 去中心化存储的QoS是什么?
我的前面一篇文章讲到如何做去中化存储,文其中提到了QoS (Quality of Service),那么QoS是什么?为什么QoS那么重要?下面将详细描述. 什么是QoS? 提到QoS,就要先了解Qo ...
- PPIO去中心化存储的了解和记录
目录 介绍 FileCoin P2P技术给去中心化云存储的好处 剩余资源的再次使用 市场竞争会激发民间的智慧 PPIO的2种冗余模式 全副本模式 纠删副本模式 为什么PPIO要设计支付代理节点? 一些 ...
- 人物传记STEPHEN LITAN:去中心化存储是Web3.0生态重要组成
近期,NGK.IO的开发团队首席技术官STEPHEN LITAN分享了自己对去中心化储存的观点,以下为分享内容. 目前的存储方式主要是集中式存储,随着数据规模和复杂度的迅速增加,集中存储的数据对于系统 ...
- Filecoin:一种去中心化的存储网络(一)
开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...
- NGK DeFi项目即将上线,打造去中心化闭环金融生态!
据最新官方消息称:NGK已于近日宣布将进军DeFi领域,NGK此次的DeFi的项目将会是一个去中心的交易平台,其最大的功能是进行数字货币的交换.在用户选择了需要支付的数字货币和想购买的数字货币后,系统 ...
- 为什么比特币和以太坊未必真得比EOS更去中心化?
在区块链行业里,有两派人一直在争论:一个是以比特币和以太坊为首的社群,另一个是以EOS为首的社群.这两群人一直在争论谁才是真正的未来,双方都认为自己这边更有未来.其中EOS抗争的重点就是100万TPS ...
- Carthage:去中心化的Cocoa依赖管理器
Cocoa的依赖管理器,我们已经有了CocoaPods,非常好用,那么为什么还要创建这样一个项目呢?本文翻译自Carthage的Github的README.md,带大家来了解一下这个工具有何不同之处. ...
- Filecoin:一种去中心化的存储网络(二)
开始初步了解学习Filecoin,如下是看白皮书的内容整理. 参考: 白皮书中文版 http://chainx.org/paper/index/index/id/13.html 白皮书英文版 http ...
随机推荐
- C# Ini、Json、Xml 封装类
1.Ini是什么?(我对它的理解,用于存储用户配置信息的文件,该文件放在用户电脑...) INI文件是一个无固定标准格式的配置文件.它以简单的文字与简单的结构组成,常常使用在Windows操作系统,或 ...
- MAC--NPAPI学习(一)简要介绍NPAPI的函数
NPAPI是浏览器与插件交互的接口,下面先简要介绍一下NPAPI的函数: Mach-o entry points NPError NP_Initialize(NPNetscapeFuncs* brow ...
- Tecplot: Legend和图像中 Dashed/Dash dot/Long dash 等虚线显示没有区别的问题
问题描述:如下图1中线型明明选择的不同,但是tecplot里显示的图像和legend里显示的线型没有区别,应该是bug. tecplot 版本:360EX 2017R2 解决办法:把Pattern ...
- asp.net mvc global.asax文件详解
一.文件概述 global.asax这个文件包含全局应用程序事件的事件处理程序.它响应应用程序级别和会话级别事件的代码. 运行时, Global.asax 将被编译成一个动态生成的 .NET Fram ...
- python logging 日志轮转文件不删除问题的解决方法
项目使用了 logging 的 TimedRotatingFileHandler : #!/user/bin/env python # -*- coding: utf-8 -*- import log ...
- Spring.NET在MVC中实现业务层和UI层解耦
最近在项目中用到了Spring.NET,使用它来实现业务层和UI层解耦.使用过程中难免遇到问题,现把遇到的一些问题整理出来,留作笔记. 使用的开发工具是vs2017,.netframework 4.6 ...
- vue 监听手机键盘是否弹出及input是否聚焦成功
//定义移动端类型 function pageStats() { let u = navigator.userAgent, app = navigator.appVersion; let obj = ...
- C# 代码补全
cw + Tab + Tab 输出 Console.WriteLine(); try +Tab+Tab 输出 try catch代码块 foreach + Ta ...
- JavaScript之更改闭包内的变量值
var f = function( ) { var x = 1 function fo() { console.log( x++ ) } return fo } var fn = f() fn() ...
- node.js跨域
先上解决方法:在函数中添加(不要用xhr请求) // 只需要关心第二个参数res.setHeader('Access-Control-Allow-Origin', 'http://localhost: ...