61

[译] Web3 视频技术栈的未来

 5 years ago
source link: https://mp.weixin.qq.com/s/AcRIG9Kaf-sD5Tgjcmxphg?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

aMzqmi3.jpg!web

编辑 | 无明

世界各地有很多项目都致力于实现去中心化的视频应用。为什么?主要有两个原因。

首先是“分布式任务”可能带来的中短期的成本效益。点对点视频流已经存在了一段时间,并且在某些情况下可以提高内容传输的成本效益,它甚至催生了一些新奇的业务。Skype 通过 p2p 视频会议起家。Peer5 通过让每个视频播放器成为 CDN 的一个节点来节省发行商的成本。事实证明,去中心化也可以提高视频栈其他层的成本效益。例如,来自 Livepeer 团队的一项研究预计 GPU“视频采矿者”可以通过转码服务获得显著的收入增长,同时比集中式提供商收费低一个数量级。

其次是 Web3 愿景所带来的长期的社会改进。Web3 并不是强调速度、性能或便利性,它更关注开放且通用的应用程序基础设施,可以在不影响透明度、权利平等和无信任的前提下提供可用性。

流式视频需要复杂的系统支持。随着越来越多的基础协议在 2018 年走向应用,视频 DApp 的基础设施扩建阶段即将到来。自主媒体应用程序距离“iPhone 时刻”可能还有几年时间,但到达那里的道路越来越清晰了。

协议栈

技术栈模型对于开发人员分析给定应用程序的依赖关系非常有用,可以避免实现重复的功能。如果一个协议提供了单个可靠的功能,那么上一层协议就可以利用它,并专注于优化其他功能。

去中心化的架构需要由在不同技术栈层上的团队协作设计。

最近,已经有一些人的工作反映了技术栈的当前状态,大多数人都是从一般性的角度来处理问题。我们认为为视频应用程序提供 Web3 技术栈的描述是非常有意义的。下图是对“Web3 视频技术栈”的一种极简描述。

bei2uiu.jpg!web

1. 网络 + 传输

Web3 构建在众所周知的网络 / 传输栈(TCP/IP)上,但它确实代表了对客户端 / 服务器端模型的彻底重新思考。在这种情况下,客户端应用程序通过开发人员选择的一组已知协议与少量先前已知的服务(数据库服务器,可能是 CDN 网络,或跟踪你的 Cookie 并提供广告的某些第三方服务)通信。在开放的 p2p 网络中,应用程序通常与事先不知晓的对等方通信(也就是需要去“发现”对等方),质量不同(在速度和可靠性方面),并且可能使用了各种通信协议。在 Web3 中,需要新的库和 API 来处理这些复杂性。

Libp2p(https://libp2p.io/)是一个网络套件,它将构建块(例如,对等发现、流复用、加密、PubSub)捆绑到具有公共接口的模块中,同时还允许用户从多个传输(TCP、WebRTC、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

今日荐文

点击下方图片即可阅读

fQFzeqV.jpg!web

V 神:应用 Zcash 技术,以太坊能扩展到 500tx/s

随着各种数字货币的火爆,区块链技术也成为大家关注的焦点。但从全民炒“币”,到谈“币”色变,浮华褪去,区块链在典型业务场景下有哪些落地思考,背后又有怎样到设计思想和技术架构值得我们参考?Red Pulse 高级架构师俞戴龙、京东物流 架构部负责人者文明、苏宁易购集团 支付平台总监肖军 、即将在 QCon 上海 2018 分享区块链相关实践内容。

大会报名即将截止,点击 「阅读原文」 查看大会完整日程。有任何问题欢迎咨询票务经理 Ring,电话: 010-84782011 / 17310043226 ,微信: qcon-0410

FzuAJnz.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK