摘要: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年,賣給蘇甯雲商。
事件表
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針對行業痛點提出的七大設計方案
由于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而進行開發與創新。
了解更多有關 PPIO 的信息
官方網站:pp.io
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!