[譯] Web3 視訊技術棧的未來
編輯 | 無明
世界各地有很多專案都致力於實現去中心化的視訊應用。為什麼?主要有兩個原因。
首先是“分散式任務”可能帶來的中短期的成本效益。點對點視訊流已經存在了一段時間,並且在某些情況下可以提高內容傳輸的成本效益,它甚至催生了一些新奇的業務。Skype 通過 p2p 視訊會議起家。Peer5 通過讓每個視訊播放器成為 CDN 的一個節點來節省發行商的成本。事實證明,去中心化也可以提高視訊棧其他層的成本效益。例如,來自 Livepeer 團隊的一項研究預計 GPU“視訊採礦者”可以通過轉碼服務獲得顯著的收入增長,同時比集中式提供商收費低一個數量級。
其次是 Web3 願景所帶來的長期的社會改進。Web3 並不是強調速度、效能或便利性,它更關注開放且通用的應用程式基礎設施,可以在不影響透明度、權利平等和無信任的前提下提供可用性。
流式視訊需要複雜的系統支援。隨著越來越多的基礎協議在 2018 年走向應用,視訊 DApp 的基礎設施擴建階段即將到來。自主媒體應用程式距離“iPhone 時刻”可能還有幾年時間,但到達那裡的道路越來越清晰了。
協議棧
技術棧模型對於開發人員分析給定應用程式的依賴關係非常有用,可以避免實現重複的功能。如果一個協議提供了單個可靠的功能,那麼上一層協議就可以利用它,並專注於優化其他功能。
去中心化的架構需要由在不同技術棧層上的團隊協作設計。
最近,已經有一些人的工作反映了技術棧的當前狀態,大多數人都是從一般性的角度來處理問題。我們認為為視訊應用程式提供 Web3 技術棧的描述是非常有意義的。下圖是對“Web3 視訊技術棧”的一種極簡描述。
1. 網路 + 傳輸
Web3 構建在眾所周知的網路 / 傳輸棧(TCP/IP)上,但它確實代表了對客戶端 / 伺服器端模型的徹底重新思考。在這種情況下,客戶端應用程式通過開發人員選擇的一組已知協議與少量先前已知的服務(資料庫伺服器,可能是 CDN 網路,或跟蹤你的 Cookie 並提供廣告的某些第三方服務)通訊。在開放的 p2p 網路中,應用程式通常與事先不知曉的對等方通訊(也就是需要去“發現”對等方),質量不同(在速度和可靠性方面),並且可能使用了各種通訊協議。在 Web3 中,需要新的庫和 API 來處理這些複雜性。
Libp2p(https://libp2p.io/)是一個網路套件,它將構建塊(例如,對等發現、流複用、加密、PubSub)捆綁到具有公共介面的模組中,同時還允許使用者從多個傳輸(TCP、WebRTC、Socket/">WebSocket、UDP 或其他)協議中做出選擇。
Devhere(https://github.com/ethereum/wiki/wiki/%C3%90%CE%9EVp2p-Wire-Protocol)是以太坊的原生網路層,避開了多傳輸支援和模組化,選擇了一種簡單的實現,可以滿足伺服器端執行以太坊節點的需求。這裡存在一個權衡,即你不能讓執行在 Web 瀏覽器中的以太坊節點通過 devp2p 與基於伺服器的以太坊節點通訊,但我們可以假設瀏覽器無論如何都會建立糟糕的以太坊完整節點,因為它們無法同步鏈。
WebRTC(https://webrtc.org/)值得一提,它的傳輸協議和庫為 Web 瀏覽器和移動應用程式提供了實時的點對點通訊能力,視訊流可以直接在瀏覽器之間流轉。有了 WebRTC,除了專門的應用程式,瀏覽器內應用程式(例如網站)也可以成為 p2p 網路中的一等公民。Peer5 等公司已經使用它來加速現有的 CDN 解決方案。
2. 狀態機 + 共識
去中心化的應用程式需要一個共同的分類帳來讀取和寫入相關的狀態變化,以及一個確保能夠對事務的順序和有效性達成共識的機制,特別是當涉及需要在鏈上完成欺詐驗證、爭議解決、會計或結算的服務(這些服務由參與競爭的代理網路提供)時。
-
EVM(https://github.com/ethereum/wiki/wiki/Ethereum-Development-Tutorial#state-machine)和以太坊(Livepeer、Paratii、PopChest 正在使用);
-
Rootstock(https://www.rsk.co/)+Bitcoin(Flixxo 正朝著這個方向前進);
-
Steem(https://steem.io/,Viewly、DTube、DLive);
-
EOS(https://eos.io/)。
3. 原始服務
在業界,有一層被稱為視訊“原始服務”——攝取和處理內容,併發送到 CDN。通常這些都是由媒體伺服器提供的。媒體伺服器掌握了視訊應用程式的所有特定知識,流視訊不同於在網際網路傳輸的其他型別的靜態內容:
-
如何攝取實時視訊,這些視訊有可能通過不同的協議流式傳輸到伺服器上;
-
如何將視訊編碼為所需的輸出(後面的“視訊處理”中提到了更多內容);
-
如何將視訊提供給通過不同的傳送格式請求視訊的不同型別裝置或內容傳輸網路 ;
-
任何其他視訊特定功能,如隱藏式字幕支援、DVR 服務、分析、廣告插入、影象檢測等。
這個功能的基礎是可以分佈到網路上任何節點的開源媒體伺服器。為了讓這樣的網路真正變得健壯,位置很重要,因為與廣播者越是接近越是可以提升流質量,並減少緩衝。理想情況下,一個協議可以鼓勵跨不同區域執行節點,讓世界各地的廣播和流具有高效能和低延遲。
-
Red5 媒體伺服器(http://red5.org,開源的媒體伺服器,但並不只專注於去中心化的用例);
-
LPMS(https://github.com/livepeer/lpms,Livepeer 媒體伺服器,可以單獨使用或在去中心節點中使用)。
4. 視訊處理
“處理”是一組特定於 A/V 流傳輸領域的作業的通用術語。轉碼是視訊處理管道中計算量很大的一個步驟。轉碼的目的是從電話、相機或膝上型電腦獲取輸入視訊流,並將其轉換為各種格式和位元率,可以以各種連線速度傳輸到地球各個角落的裝置上。
通過利用去中心化的計算資源和加密經濟激勵協議,可以建立帶有便利且可擴充套件雲轉碼服務的網路,但實際的執行成本是在裸機硬體上。任何人都可以將視訊傳送到網路中進行轉碼,讓節點展開競爭,將視訊處理成所需的輸出,成本僅比電費高出一點點。
這裡有一個關鍵功能是自適應位元率流(ABS)。通過將一個流轉換為多個不同的位元率,智慧視訊播放器可以根據可用頻寬和連線速度在視訊的不同質量版本之間切換。在觀看 Netflix 或 Youtube 時,你可能會注意到視訊質量會自動提高或降低,這通常是 ABS 實際應用的一個例子。如果沒有 ABS,收視率將會下降,因為連線速度較慢的使用者無法以高質量訪問原始流。
Livepeer(http://livepeer.org,用於建立在以太坊上的實時流和視訊點播的激勵轉碼協議);VideoCoin(https://medium.com/@videocoin,支援編碼事務型別的區塊鏈)。
5. 儲存
直播流和視訊點播之間的差異更加突出。直播原則上只需關心正在播放的流的來源。VoD 應用程式需要在某個時候(或某些唯一識別符號)從 Web3 的“硬碟驅動器”中獲取檔案。
最近,人們對點對點儲存的看法搖擺得十分激烈。從幾年前的“讓我們回收世界上所有未使用的磁碟空間”狂熱到意識到“AWS 是真便宜並且很難與之競爭“,即使是對於普通的”正在建設中“DApp 也是如此。當人們需要真正的去監管並且不需要擦除檔案或處理細粒度訪問許可權的能力時,p2p 儲存的優勢開始顯現。
如今,開發人員可以在一系列 p2p 檔案系統上儲存視訊。網路之間的差異在於如何處理隱私,如何定價以及驗證方式等。以下這些系統都是有效的,但還沒有一個能夠提供全功能的原生激勵。
-
IPFS(https://medium.com/@ipfs,與 torrent 檔案不同,為“細粒化的市場”而生,塊級的去重,叢集能力等);
-
Filecoin(https://filecoin.io,一個原生的激勵系統,尚未正式推出。);
-
Swarm(https://github.com/ethersphere/swarm,以太坊的原始原生儲存系統);
-
Storj(https://medium.com/@storjproject,強調端到端加密和安全性);
-
Sia(https://medium.com/@SiaTechHQ,與上面類似,最近推出了一個關於流媒體的教程,https://blog.sia.tech/stream-video-from-sia-network-bc9e2d5d9daa)。
去中心化的儲存網路由提供訪問控制的技術進行補充和擴充套件,並允許應用程式強制實現許可權(例如 DRM 或按次付費方案)。Unlock(https://medium.com/@UnlockProtocol)就是這樣的一個例子。
6. 內容傳輸
內容傳輸由 CDN(如 Akamai、Cloudfront 和 Fastly)負責處理。他們建立了位於世界各地邊緣位置的伺服器網路,以及按需將視訊分發到這些伺服器的基礎設施。這些公司按照傳輸資料的數量向廣播公司收取費用。因此,隨著越來越多的觀眾觀看內容,費用也會跟著上升。
最近,點對點技術顛覆了這一切。Peer5 和 Streamroot 等公司可以在世界盃等流量高峰期間抵消高達 85%的流量(和成本)。雖然這是一個很大的改進,但它仍然需要傳統的 CDN 來處理剩餘的 15-50%的流量。
這些 CDN 和“P2P 加速器”都是收費頻寬費用的集中式公司。像 Bittorrent 這樣的協議及實現了該協議的 WebTorrent 用“易物”的計費方式取代了頻寬付費,觀眾可以通過頻寬來換取內容。這對於流行的點播內容來說非常有效,但是對於低延遲的場景(例如直播)和長尾內容效果並不好。
那些試圖對 CDN 去中心化並將其用於通用檔案傳輸和視訊流(實時 + 點播)的專案,它們要在全球 p2p 網路上激勵檔案可用性保證、效能和交付,需要經歷艱苦卓絕的鬥爭。雖然 Swarm 和 IPFS/Filecoin 在按需場景方面取得了很大進展(在回放之前要求下載整個檔案),但對於流式和實時場景,它們的技術棧中仍然缺少一個層:提供實時內容的原點以及去中心化的 p2p 內容加速器。
-
BitTorrent(https://www.bittorrent.com,原始的無許可權控制內容定址傳輸網路);
-
JoyStream(https://medium.com/@JoyStream,為 Bittorrent 種子付費);
-
Filecoin(http://filecoin.io,理論上可以作為 VOD 內容的原點,但不知道是否適應於實況內容);
-
Swarm(http://swarm-gateways.net/bzz:/theswarm.eth,以太坊的 Web3 基礎設施專案,帶有流的工作組跟蹤);
-
Theta Labs(https://medium.com/@ThetaLabs,帶有 PoW 證書的視訊區塊鏈,用於頻寬付費場景)。
7. 索引
Web3 需要索引和查詢優化的解決方案——就像 postgres 或 mongodb 的內建索引功能,或者像 Solr/Lucene 這樣的獨立解決方案。EVM 的實現已經提供了基於事件的原始索引系統,但是對於 IPFS 或 Swarm 上的大型資料集中的全文搜尋來說肯定是不夠的。
在 DApp 環境中,團隊通常會基於傳統的技術構建自己的索引伺服器。區塊鏈探索者(如 etherscan.io 或 etherchain.org)就是典型的例子——他們從以太坊中提取資料,將它們儲存在資料庫中,並通過 API 公開出來。
這些解決方案有效地重新引入了集中式技術的缺陷,而這些正是 Web3 要克服的。比如,信任第三方或錯誤地公開你的資料。我們需要去中心化的索引解決方案,以提供正確的結果。
證明查詢結果的正確性由兩部分組成:結果必須全部在原始資料集中,並且必須是完整的(沒有省略結果)。證明正確性相對容易:例如,如果資料儲存在默克爾樹中,則每個單獨的結果都可以通過默克爾證明其存在於樹中。
-
The Graph(https://www.thegraph.com/,以太坊和 IPFS 的 OS 索引引擎,演變為分散式查詢協議);
-
Fluence(https://github.com/fluencelabs/research/blob/master/FluencePaper.pdf,側重於查詢的資料庫網路);
-
TxHash.com(https://medium.com/@txhash,合約跟蹤 / 索引即服務);
-
Supermax(http://supermax.cool/,合約跟蹤 / 索引即服務);
-
Cleargraph(https://medium.com/dsys/build-the-next-big-decentralized-application-with-cleargraph-4b1f34d2675,GraphQL 以太坊索引,也提供索引即服務);
-
BigchainDB(https://medium.com/@BigchainDB,“去中心化的資料庫”)。
8. 相關性和聲譽
在今天的網路上,相關性引擎(評估特定環境中內容的“價值”)和聲譽系統(評估使用者的“價值”)通常是閉源的,而且在不斷髮生變化。
這些系統必須做很多“遮蔽任務”:維護白名單或黑名單、將它們組織到種子源中、過濾評論、提供特定於上下文的建議。
擴充套件這些活動需要做出艱難的權衡,即使是在集中式的系統上也是如此。Facebook 將其大部分遮蔽工作外包給菲律賓薪酬很低的工人。據報道,YouTube 為它的直播功能聘請了數千名稽核員。
DApp 開發人員沒有現成的解決方案可用於過濾流中的內容,目前還不清楚什麼樣的機制可用來解決手頭的問題。但是,激勵無邊界的稽核員網路併為上層應用提供簡單可插拔的擴充套件機制是一個可行的辦法。分散式稽核設計模式飽受批評,因為它們沒有考慮到聲譽和 sybil 阻力。
-
Steem(https://steem.io,內建稽核協議);
-
TCR(https://hackernoon.com/token-curated-registry-tcr-design-patterns-4de6d18efa15,一種有前途的設計模式,在被用作實際原語之前值得進行一些測試);
-
Relevant(https://relevant.community,仍然專注於在社交新聞領域為其旗艦應用程式構建分散式稽核機制);
-
Paratii(https://paratii.video,同上,用於視訊和播放列表)。
9. 應用程式
應用程式將訪問許可權與下面相關的協議聯絡在一起,並以介面加邏輯的形式向用戶提供體驗。
這一領域還有待開發,因此應用程式開發人員希望能夠接受所有未來的挑戰,構建出一些可以外包給另一個協議的功能。此外,上市策略意味著較底層的協議無法單獨啟動——大多數協議至少需要部署一個初始實現版本來證明技術的用處,並吸引到開發人員。例如 Livepeer、Theta 和 Videocoin,他們分別啟動了 Livepeer.tv、SLIVER.tv 和 Live Planet。
應用程式開發人員非常依賴庫和框架,因為它們讓開發流程變得更容易。以下這些專案可以顯著加快將 DApp 投入生產的速度,促進金鑰管理、節點連線、匯入 / 匯出錢包等過程:
-
Embark(https://github.com/embark-framework/embark);
-
Web3.JS(https://github.com/ethereum/web3.js/);
-
EtherJS(https://github.com/ethers-io/ethers.js/)。
總結
Web3 的未來並非一成不變,而是一個給網際網路帶來變革的機會。它的技術棧並沒有明確的定義。我們試圖提供一個有用的心理模型,同時儘量保持簡單。它可以幫助開發人員開始構建視訊 DApp,幫助產品團隊“將視訊管道的一部分外包”,或者讓分析師熟悉這個領域。
Web3 的目標不應該是取代特定的現有企業,而是確保開發人員可以訪問不依賴於壟斷代理的應用程式工具和基礎設施。這麼做不是為了推測哪些層更有可能產生價值,而主要是為找到那些需要填補的空隙。這個生態系統將會蓬勃發展。
原文連結:https://tokeneconomy.co/web3videostack-c423481c32a5
隨著各種數字貨幣的火爆,區塊鏈技術也成為大家關注的焦點。但從全民炒“幣”,到談“幣”色變,浮華褪去,區塊鏈在典型業務場景下有哪些落地思考,背後又有怎樣到設計思想和技術架構值得我們參考?Red Pulse 高階架構師俞戴龍、京東物流 架構部負責人者文明、蘇寧易購集團 支付平臺總監肖軍 、即將在 QCon 上海 2018 分享區塊鏈相關實踐內容。
大會報名即將截止,點選 「閱讀原文」 檢視大會完整日程。有任何問題歡迎諮詢票務經理 Ring,電話: 010-84782011 / 17310043226 ,微信: qcon-0410 。