摘要:2019年11月26日,同济创业谷与 PPIO CodeTalks 联合举办了《创新X - 区块链与创新创业》区块链技术分享会,本期我们为读者带来主题分享 -- 《从PPTV网络视频,到PPIO区块链分布式存储》。
嘉宾介绍:
王闻宇 -- 前PPTV 的联合创始人&和首席架构师,曾经主了PPTV的点对点直播和点播项目,PPIO开源平台联合发起人。
为看球而生的视频播放软件
时钟拨回15年前,王闻宇都还是一个华中科技大学的计算机专业大学生,平时喜欢读论文、写程序和观看篮球比赛转播。
他在校学习编程时无意中发现了一个“不正常”的现象。
当时的校园网络里流行FTP下载,大家都用这种方式去下载最新的电影和游戏。但稍微流行一点的FTP站点都有个问题,就是下载慢。因为它热门,所以下载人数多,人数越多速度就越慢。
当时有一个独具创新的软件叫BT - BitTorrent,该软件的特点是用户越多下载速度越快,因为它基于了一种新的计算机网络传输技术 -- 点对点网络技术传输 即 Peer-to-Peer Network。
这种技术的原理,就是当每个人在下载的同时,也会把数据上传给其他人,本来所有人都要从服务器获得数据,现在不用了。这个方式可以大大节约服务器带宽。如果使用相同的原理,是否可以做到用户越多越流畅呢?
作为篮球迷,想要第一时间观看球赛视频的王闻宇和姚欣开始数周的调研与开发,最终完成了一个最简可用的软件产品(MVP),由于满足了当时年轻网民的需求一下子成为热门软件。
时光荏苒,从校园软件到拥有全球4.5亿用户的生态
为进一步满足强烈的市场需求,还是在校学生的姚欣和王闻宇组建团队,把原本简易的校园软件当作一份事业来经营,并取名为PPLive最终品牌升级为PPTV。
从万行代码堆聚的程序应用到一个品牌 -- PPTV,期间经历了十多年的发展。
04年后的第一个十年,是PPTV创造奇迹的十年。期间经历六轮融资,从天使到E轮,累计融资到数亿美金。
PPTV的软件架构也经历了多次奥运会,世界杯,国庆阅兵等大型直播的考验。在度过了两轮互联网资本寒冬后,最终在14年,卖给苏宁云商。
事件表
04年, PPLive上线定位于 点对点传输技术的流媒体视频直播软件, 之后扩展到 视频点播;
08年, PPLive全线播放2008年北京奥运会;
09年, PPLive 品牌升级为 PPTV;
不久后,PPTV 成为全国最大的正版高清视频平台之一, 获取全球4.5亿用户;
11年, PPTV获得来自软银孙正义的2.5亿美元融资;
14年, 苏宁云商全资收购 PPTV。
PPTV曾经做到的成绩是,稳定流畅地服务了全球4.5亿用户,聚合了相当于120P的存储和50Tbp的带宽资源,支持了多个平台,包括PC桌面,Mac,手机,Pad,机顶盒电视等。
从技术角度看,PPTV用点对点网络传输技术,做出了经过超大规模考验的应用,在全球此类技术商业化的案例实属一个奇迹。但随着科技行业的发展,点对点传输应用也遇到瓶颈,因为其协议本质是共享精神,有人下载就必须有人上传,只有上传和下载是对等的,这才能保证用户体验。早期的网络传输靠得是用户自觉上传,但随着互联网软件生态的飞速发展,点对点网络技术的影响力在急剧下降。
这有多个原因,其一:没有激励机制设计,导致节点上传没有好处,节点就不会不稳定。而基于这些不稳定的节点之上所搭建的服务,某些方面是不如中心化服务的。其次:移动设备的大规模普及,因为操作系统的技术限制,只适合下载,而不适合上传,PC端用户越来越少,上传也就越来越少,纯点对点网络的传输的体验也越来越差。后来,就是技术团队做了一系列的措施的获取流量,如后台驻留程序,但都未能解决其本质的问题。
近几年来互联网行业有两个新事物的出现引起王闻宇和姚欣的关注,其一是共享经济,包括uber和airbnb,uber汇聚闲置的车,airbnb汇聚了全世界闲置的房源,他们不仅汇聚资源,还能把他们都高效利用,并提供稳定的服务。另一个就是比特币(BTC),它利用区块链设计一套公正透明的“竞赛”机制,最终汇聚全世界最便宜的电,具专业报告,全世界1/10的电被用于BTC网关,可惜这事没有价值被白白耗掉的资源
在受到启发后,团队开始思索,如果把激励和点对点传输技术结合起,来把闲置带宽和存储资源就汇聚起来,搭建一个有用的平台会是怎么样的?
这也是PPIO发起的缘由。
重新出发,拥抱下一代科技浪潮“边缘时代”
2018年初,王闻宇和姚欣发起PPIO全球开源项目,探索下一代互联网科技的新边界。
PPIO开发团队致力于解决目前互联网行业存储与传输的痛点,从需求调研到模块立项,两年间开发团队经历过无数通宵达旦的讨论研究,为每个模块的落地负责。
PPIO团队发现市场上数据存储传输的需求增长是大于技术供给的,简单说全球范围内数据处理需求端是未得到充分满足的,新兴市场存在巨大的机会。
纵观云服务商AWS等大厂,大厂的机器总是选择放在那些发达、稳定、繁荣、安全的城市。
而近几年新兴市场的互联网生态,正处于闪电速度的崛起,对于云服务来说,大厂似乎并没有足够重视此类长尾。
还有一个有意思的数据维度是来自于对全球新兴市场的流量价格对比:数据表示东南亚、南美新兴市场的云服务价格是欧美地区的三倍。总之,存储行业面临各种挑战。
总结中心云存储方案的三大挑战
挑战一:居高不下的成本
大数据时代,中心化云存储及带宽价格高昂且云巨头对行业进行垄断,各地运营商状况的巨大差异。
挑战二:云故障不可避免
中心化云计算方案,容易产生单点故障和数据丢失,曾经,Google Cloud数据丢失,腾讯云“前沿数控”,百度网盘之前都发生过个人数据丢失事件。
挑战三:数据安全与隐私保护
中心化存储方案带来集中式的数据隐私泄露风险,即使大公司也是如此,例如Dropbox 6000万用户数据被黑,Facebook 使用用户隐私数据。
最后经调研,在CPU存储和带宽的用户端市场都存在闲置和低效利用的状况。所以,PPIO的发起就是为解决这一问题,帮助用户构建一个分散式的存储和带宽租用平台。
那么回到2010年以前,那个时候没有云服务,那么互联网行业是做软件产品的呢?
当年PPTV是自建IDC机房,买入一堆浪潮的机器,数据库用Oracle,然后用IBM做了一些方案,最后拼凑起来。不仅仅投入大,还要有专业的管理能力。
2010年后,类似AWS/Google Cloud云服务面世之后,很淘汰了之前的自建机房这样一个方向。现在大家通过在云服务平台几个鼠标一点就可以购买主机部署一个服务来使用了。而且用多少量付多少钱。
经历几个科技周期的王闻宇洞察到伴随着新技术出现,世界将会步入边缘计算的时代。
目前,我们仍处于边缘计算时代的最早期。
从PPTV网络视频,到PPIO分布式存储与传输
如果简单的一句话形容PPIO,就是利用分散的资源构建的类似AWS的存储和传输,PPIO不会取代现有云服务,而是服务于部分场景,是对于传统云服务是一个补充。
PPIO的可持续商业模式是基于价格差,比如说需求和供给中间所带来的这样一个价格差,也就是说通过低成本的供给资源,为开发者提供一个高性价比的接口。
PPIO的定位是一个商业服务平台 , 使得内容存储与传输:
更便宜:用激励来刺激家庭资源 / 闲置资源做贡献;
更高速:点对点网络传输的技术的天性就是做到高速传输;
更隐私:应用前沿的密码学技术 & 区块链技术。
PPIO 可以理解为是一个分散资源构建的AWS存储和传输服务。
那么,去中心化存储是否能像AWS一样提供优质服务?
很多人疑问当数据存储在矿工的矿机上,由于矿工的不稳定性,可能导致文件的丢失。就像滴滴的司机一样,大部分时间是靠谱的,偶尔不靠谱,不靠谱的时候,体验非常差,这样的产品怎么能让人放心使用呢?
首先,需要纠正一个认知误区:请问,AWS S3等大公司能100%保证存储文件不丢失吗?其实是不能的,他们只能99.999999999%保证存储文件不丢,专业术语称为:11个9的保证存储文件不丢。存储行业称99.999999999%这个服务质量指标(QoS)为耐用率。
PPIO设计了2种冗余模式,通过在不同场景下使用,也可以在去中心化的环境中做到11个9的数据保证,原文推导详细过程请参阅:《为什么 PPIO 作为去中心化存储可以保证数据不丢失?》
从可持续发展的角度考虑,PPIO设计分为三个阶段
这三个阶段分别是 中心化阶段,弱中心化阶段,去中心化阶段。
纵观其他海外存储或传输类项目,他们大多都把重心方向放在了 “完全去中心化,安全隐私和社区化治理上”。其项目背后的目的是一种顺应炒作社区的妥协从而提高其“估值”,没有把其应用场景落地放入首位考虑因素。而作为解决存储传输痛点的团队,PPIO的架构设计会考虑牺牲一定的去中心化而优先探索落地场景。
此设计主要考虑三方面:
1.非常复杂的证明机制
不同于数字货币,去中心化存储及传输的区块链证明机制会更为复杂。存储内容的大小,时间,这是一个计量因素;传输了多少数据也是一个计量因素。要证明这两个因素,比起BTC的单机“做算术题“的PoW算法要复杂得多。这个机制不是简单的一次性地就能做到商用的。
2.QoS的迭代和优化
QoS服务质量优化并非一蹴而就,而是经过漫长的升级与迭代。在PPIO的架构设计之初,就非常强调高效的调优QoS, 因为优质的QoS才能吸引用户从而良性循环。用户多了,才能产生公信力。
3.经济模式
生态发展之初,奖惩制度的设定极为重要。有很多问题都是需要探索的,如社区经常争论的是否要求抵押才能参与共识,如因非人为原因而引发的节点不在线是否应该受到惩罚。过早的对经济模型进行设定,而不为日后场景的需求提前预留调参的功能,会影响平台的可持续发展。
基于这三方面的考虑,PPIO把阶段设计成了三个阶段,具体细节,请查阅: 《一切为了落地:为什么要把PPIO设计成三个阶段》
PPIO存储传输方案的使用场景分析
PPIO主要适合一些存储传输要求比较大的场景,包括以下:
热数据传输场景:如 文件分发(CDN,游戏下载),直播,在线点播等;
温数据传输场景:Wetransfer,RapidShare,离线网盘等;
纯传输场景:如 音视频通话, 音视频会议, 低延时直播等;
数据存储场景:如 个人网盘,企业网盘,数据备份等。
PPIO针对行业痛点提出的七大设计方案
由于PPIO 团队做过大规模的点对点网络传输,非常了解传输场景对技术的多样化甚至刁钻的需求。这些经验让我们可以为传输类产品做出符合实际需要的技术架构,以下是 PPIO 为传输场景所做的技术设计。
#1. 在互联网之上建立重叠网络
PPIO 支持重叠网络 (Overlay 网络),每个存储节点 (Storage Node/Miner) 都会将与自己物理连接较快的存储节点作为自己的邻居,在数据传递和信息交互过程,充分发挥临近节点的优势。
#2. 专门针对流媒体传输的优化
流媒体传输场景的最主要应用,对流媒体的支持以及做到足够好的服务质量 (QoS) 非常重要。PPIO 实现了针对流媒体的由数据来驱动的特别下载算法,从而保证实时流媒体的流畅播放。
#3. P4P 技术的支持
点对点网络传输会产生大量的网络间的跨 ISP 流量,网络运营商并不喜欢这样。一般来说,网络运营商 ISP 的网络内的流量是没有额外费用的,但是,运营商之间传输所产生的通讯会按照流量来计费。有没有什么办法能够做到既保留点对点网络传输技术的优势,又能做到降低跨 ISP 流量呢?这就是 P4P 技术。
#4. 点对点网络直播的考虑
PPIO 不仅仅考虑了流媒体点播的下载,而且还考虑实时流媒体直播。直播在本质上就是一堆连续的小文件的传输,只是这些小文件他们的生命周期比较短,一段时间过后就没有用了,但同时也要求这些小文件的传输效率要非常高,要非常快速地传输到尽可能多的节点上。直播的整体架构和 PPIO 的流媒体体系是一致的,只是切分文件的方式,下载算法有所不同。
#5. PPIO PCDN 的设计
PPIO 的设计是支持 PCDN 的,并且提供了 DApp 开发接口,开发者将很容易使用 PCDN 接口为自己的内容服务提供加速。
#6. PCDN的热门内容的自适应调度
在PCDN里面,热门内容的自适应调度是非常重要的,也是提高服务质量 (QoS) 的重要手段。这样的设计既能提高用户体验,也能提高更多存储节点的收益。
#7. PCDN的人为预热机制
比如说大家在看一部电视剧,前面一集看的人已经很多了,那么大概率地预测,下一集看的人也会很多。所以发布方在更新新的一集的时候,就可以提前推送新的一集的资源到更多矿工那里。
相对于其他存储区块链,PPIO更重视传输场景的。这里有个简易的对比表格分析三个存储链,并给出对比信息。
详细的设计,请查阅《PPIO 分布式存储在数据传输上有哪些优势?》
目前的PPIO的开发状态
PPIO目前完成了测试网,在PPIO官网(https://pp.io )上大家可以去看到测试的情况,包括所有的测试出块都是正常的进行。
那么另外PPIO也发布了PPIO SDK,CLI命令行工具和Demo APP。目前SDK和CLI是可以直接开发的,Demo 也是可以直接使用。
PPIO也给开发者给开发者提供文档,可以登录PPIO官网来查阅。
同时团队也在孵化更多的一些项目,同时也在打磨各个模块技术,近期会的因为把我们的更详细的一些源码然后开放出来供开发者使用,相信很快更多开发者会意识到PPIO带给开源社区的好处 -- 更廉价 高速 和隐私,从而基于PPIO而进行开发与创新。