亲爱的STEEM社区,

我很高兴最终将这个项目带到公众面前。介绍…




DTUBE.VIDEO

 

什么是DTube?

DTube是一个完全用javascript编写的应用程序,它在浏览器中运行,允许您在IPFS网络上上传和观看视频。此外,它使用STEEM作为数据库,并可以从您的上传中获得奖励。

对于那些记得SteemQ项目公告的人来说,这可能会敲响钟声,这项公告可以获得近五千美元的奖励,但从未获得发布并最终被重新命名 – 一年多后它仍然无法正常运行,甚至当前的阿尔法也使用了一切的后端服务器,因此仍然是集中的。我相信我不是唯一一个对SteemQ感到失望的人。

我选择了不同的方法。先建立一些东西 – 然后再谈。如果你想知道,我自己做了一切(当然还有开源库的帮助),从头开始花了大约4个月的时间才能达到现在的水平。

本文的很大一部分将是技术性的,也许对某些人来说可能不那么有趣,但我相信我的追随者很大一部分都对这种讨论感兴趣,所以我将解释它是如何工作的。对不起,文字传入墙:)

如何使用DTube

在登录

  1. 输入您的STEEM用户名
  2. 输入您的私人发布密钥,您可以这样找到:

多用户登录

Youtube和Facebook有这个惊人的功能,您可以轻松地将多个频道链接到您的帐户,并轻松地在它们之间切换。我确信我不是STEEM上唯一拥有多个帐户的用户,并且必须使用不同的浏览器或机器人来支持所有帐户,这很快就会变得无聊。在DTube上,您可以根据需要使用尽可能多的帐户登录,并在它们之间切换。

我不知道为什么SteemIt仍然没有这个功能。

设置

DTube具有可从应用程序中的任何位置访问的设置菜单。它允许您调整投票权,与SteemIt.com类似地过滤NSFW内容,并调整IPFS设置。IPFS网关是从中加载文件的位置,而API是我们用于上载的内容。

上传

首先,您需要登录才能访问上传页面。
然后只需添加一个视频,一个快照(也就是缩略图),最后填写区块链的文本并提交!

如果一切顺利,您应该在提交后接收视频,并且应该在0到30秒之间开始播放视频,具体取决于网关和连接速度。

浏览视频

目前有三种主要方法可以在DTube上发现内容。您可以访问主页并发现NEW,HOT和TRENDING类别。它们的工作方式与SteemIt相同。
例如,您可以直接访问我的测试帐户https://dtube.video/c/curator来访问某个用户的频道。
最后,您可以使用顶部栏中的搜索,在本文后面有更多相关信息。


DTube如何工作

使用STEEM区块链作为数据库

因为我们希望DTube真正分散,所以我们不能让服务器运行数据库并使用它来查询事物。使用区块链是一种自然的解决方案。STEEM与其他区块链相比具有许多优势。它很快(3秒块)。它是免费的,任何人都可以使用它,而无需存入某种形式的货币,交易没有任何费用。谁愿意付钱上传视频,评论视频,甚至赞成?没有人。作为额外的奖励,STEEM区块链已经具有奖励收益机制。

在DTube上传的任何视频都会成为STEEM内容,可以获得7天的奖励。DTube不会使用内容的标题或正文来存储信息,因此,如果您不希望视频上传显示在Feed中,则可以编辑或删除它,视频将在DTube上保持完整。虽然可以在其他平台上显示任何内容,例如steemit.com或busy.org,但我相信当前的行为很好并且将有助于平台增长和用户奖励。

使用IPFS作为静态文件存储

IPFS是一种支持分散文件存储的协议。其背后的原理称为分布式哈希表(DHT)。同样的原则也为BitTorrent网络提供动力。就像加密货币如何使用非对称加密一样,DHT网络将散列内容以便能够识别文件。散列成为文件的标识符,它就像重新散列文件并确保散列匹配一样简单,以确保发送给我们的文件是原始文件。

为什么不使用Torrent呢?Torrent可能已经拥有更多内容并且更加主流。但是,Torrent不是为网络而构建的。一些实现,如WebTorrent正在努力使其发挥作用,但它仍然需要一些“混合”客户端作为桥梁,以便将文件从μTorrent等硬客户端传输到在浏览器中运行的Web客户端。不太方便,效率更低。我相信很多人已经使用PopcornTime来观看一些“盗版”内容,并且喜欢它,但是在浏览器中运行类似的东西,而不必运行混合客户端来连接人,这是不可能的。

IPFS是一种更年轻,开源且积极开发的协议。它前途光明。使用它作为该项目的主要存储空间是一个明智的选择。

IPFS存储成本

IPFS很酷,但没有魔力。有人需要对文件进行播种,并且您的浏览器无法永久存储大量文件(大多数浏览器的本地存储空间限制为50MB),因此无法直接通过应用程序进行播放。虽然我的第一个想法是要求一些证人运行一些IPFS节点,但在几次谈话之后,这会产生比解决方案更多的问题,因为大多数证人都是非技术人员并正确运行和配置IPFS节点似乎是对大多数人来说是艰难 我仍然相信这个解决方案是正确的,但我显然需要设置一个码头工具或一些容易让目击者积极加入DTube网络并开始播种文件(并获得奖励的一部分)。

相反,我搜索了现有的IPFS节点并联系了IPFS Store的所有者,这是一个允许您使用比特币支付以将您的文件保存在IPFS网络上的网站。在@nannal(steem,twitter / etc)的一些积极和指导性回复之后,我知道我找到了我的男人。

我最近创建了@dtube帐户。此帐户将用于收集DTube作者奖励的25%。这些费用的10%将用于支付IPFS商店上文件的长期存储费用。费率为每月每GB 0.044美元。因此,举例来说,假设您上传了一个100MB的视频,获得了10美元的奖励,然后0.25美元将转到@nannal并确保数据冗余约57个月。一旦这个时间过去,用户将需要自己付费(当然接受加密)以保持文件播种,或者直接在他们自己的PC和连接上播种。

设计

大多数开发人员都知道“不要重新发明轮子”的说法。这同样适用于设计和用户体验。领先的视频平台YouTube已成功运行多年,复制它们是有道理的。特别是当我是前端开发和UI设计的傻瓜时。我尝试使用Semantic UI框架复制YouTube的外观和感觉。虽然我为它的外观感到骄傲,但我相信一些比我更有才华的人会因为它看起来和玩耍有多糟糕而打我。

我对建议很开放。或者,如果您是网页设计师,具有良好的投资组合和语义UI体验,请随时通过steemit.chat与我联系。

使用AskSteem进行搜索

非技术人员可能很难理解它,但搜索实际上是使DTube成为可行产品的最棘手问题。当您拥有标准的SQL或Mongo数据库时,搜索很容易。但是在这里,我们的数据库是STEEM区块链,我们无法通过直接与steem节点进行通信进行搜索。我了解搜索是博客平台的低优先级功能,尤其是当Google为每个内容编制索引并提供搜索API时。但对于DTube,用户将使用它很多。

我联系了@thekyle,一个有能力的开发人员,他在SteemIt上发帖但得不到他应得的一半奖励。他最近推出了AskSteem,这是STEEM区块链的搜索引擎。他的服务使用ElasticSearch数据库,并将在15分钟内为新视频编制索引。

他的API原本不足以让我在搜索结果中显示某些信息,例如视频快照(缩略图),否则我需要为每个搜索结果调用一次,即大量无用的调用。@thekyle满足了我在24小时内改进API的要求,并允许它按原样顺利运行。❤

可以说,搜索不是分散的。任何搜索都将通过AskSteem服务器,搜索结果可能会被更改,或者如果@thekyle决定关闭它,搜索可能会停止工作。

更好的解决方案是直接在steem节点上使用搜索功能。另一种解决方案是在应用内部运行另一个DHT网络,具有模糊搜索功能。我真的不知道是否可以在DHT网络上进行模糊搜索算法而不会产生故障点,我认为没有人能在地球上找到这个问题的答案。这就是我决定妥协的原因。我们看看事情会怎样。

永久存储的数据

DTube将使用您的浏览器本地存储来存储一些信息。首先,它将存储您的用户帐户和发布密钥,这样您就不必每次都重新登录。我想这不会让任何考虑到steemit.com的人都感到震惊。

其次,DTube还会存储您观看的视频,以便显示“再次观看”类别。就像YouTube一样。您可以注意到,“再次观看”类别不会显示帖子奖励,因为这些奖励可能会在任何时间点发生变化,并且无法信任我们之前存储的数据。

如果您有时清理浏览器,则必须重新登录,并且您的观看视频历史记录将被清除,无法将其恢复。只是一个友好的警告:)

为什么我无法使用主密码或活动密钥登录?

因为这是一个迟钝的事情。Steemit.com完全允许它,​​因为他们在应用程序中也有一个钱包。XSS攻击在互联网上很常见,而且大多数开发人员对此都是正确的偏执。如果我的应用程序的某些用户因为我丢失了帐户和金钱,我会觉得很糟糕。相反,强制用户使用发布密钥并限制风险要容易得多。

DTube不包含除发布密钥之外的任何其他功能。这意味着没有钱包,没有密码重置,没有内部市场交易,没有关机,对我来说工作少了。如果您想管理您的STEEM奖励,我邀请您使用Vessel。并且只能在任何在线平台上使用您的发布密钥,例如steemit.com,busy.org等。

“那么SteemConnect怎么样?” 我已经可以在本文下面看到这个评论。我非常了解SteemConnect项目,该项目旨在为开发人员提供一种简单的方法来启用STEEM登录和密钥管理。但是,我个人非常反对委托我的钥匙或将它们发送给其他人使用,即使它是由SteemIt公司正式运行的受信任的第三方。抱歉,但我喜欢100%控制我的钥匙,你应该太。还记得每当交换被黑客攻击时所有在Reddit上哭过的人吗?不要像他们一样。

用户端编码的情况

在YouTube上,您上传原始文件,YouTube会对您的文件进行编码,甚至将其转换为多种品质,并创建一些花哨的GIF,以便在鼠标悬停时预览视频。

在DTube中实现同样的目标很难。在javascript中编码视频文件更难编码,并且总是会更慢。糟糕
最重要的是,如果您想要多个高质量的文件,那么您需要上传多个文件并将上传视频所需的时间相乘。
错最后,它可能会大大增加DTube应用程序的总大小,因此会增加初始加载时间。坏坏

已经有无数的程序允许视频编码。而这只需要用专业工具录制的视频,如高档相机。拥有这种硬件的人通常已经知道编码。我的个人智能手机已经编码了H.264中的每个视频,我想你的iPhone也是如此。那么为什么不让它变得愚蠢呢?

易于集成到其他平台

任何其他基于STEEM的平台都可以轻松集成DTube上发布的视频。视频IPFS哈希存储在json_metadata帖子的内部。然后它就像做一样容易
<video src='https://ipfs.io/ipfs/videohash'></video>

已知的问题

缺少功能

  • 声誉系统
  • 标签浏览
  • 视频建议(在视频右侧)
  • 关注频道
  • 自定义播放器

我相信产品的当前状态是可行的,即使没有这些缺失的功能。我会慢慢地添加它们。另外因为我不确定现在哪个是优先考虑,我会让你们在评论中选择和争论它!

应用程序依赖项

DTube是使用Meteor构建的,并使用来自NPM的许多开源软件包。如果没有它们,DTube就不存在,所以他们应该得到一些学分。
IPF问题-API -与IPFS网络通信
SteemJS -与STEEM Blockchain沟通
autolinker -添加链接描述/评论
一刻 -显示时间
XSS -用于显示文本不可信,防止XSS攻击

对调试器和想法建议者的信用

@ steeminator3000 @dailydogger @coldbolt @nannal @thekyle @ekitcho @fabien @kalvas @ french.fyde @nnnhhh @fayetristan @lukestokes

交联

尽管与IPFS有关,但我对其他主流社交网络上的这篇文章的吸引力仍然很大。备用一个upvote?让我们试着关注外面的世界。
Reddit 
黑客新闻

最后的话

虽然我个人认为权力下放是未来,但不要让你的希望过高。与YouTube竞争是一项繁重的任务,一个人无法完成。我对这个项目的意图是实际证明在IPFS之上分散视频的可能性。它有效,但我们不知道它在长期内有多好。YouTube还有许多额外的功能,可以提升体验。我所建立的,可能代表了可以与YouTube竞争的所需工作的1%。我建了一些墙,但是没有隔热或涂漆,整个建筑物可能随时都会倒塌。