
在本文中,我将向您介绍有关Internet,集中式和分散式网络的发展历史和前景,以及下一代分散式网络的可能架构的想法。
互联网出了点问题
我于2000年首次了解互联网。 当然,这离开始还很远-网络早在那之前就已经存在,但是那个时候可以称为互联网的第一个全盛时期。 万维网是蒂姆·伯纳斯·李(Tim Berners-Lee)的一项杰出发明,其经典规范形式的web1.0。 许多站点和页面通过超链接彼此链接。 乍一看-一种像所有出色建筑一样简单的架构:
分散且免费的 。 我想要-我正在通过超链接浏览其他人的站点; 我想-创建自己的网站,在该网站上发布我感兴趣的内容-例如,我的文章,照片,程序,指向我感兴趣的站点的超链接。 其他人向我发布链接。
看起来-田园图片? 但是您已经知道一切如何结束。
页面太多了,搜索信息变得不平凡。 作者注册的超链接根本无法构造大量信息。 首先是手动填充目录,然后是巨型搜索引擎,开始使用巧妙的启发式排名算法。 网站被创建和废弃,信息被复制和扭曲。 互联网正在迅速商业化并远离理想的学术网络。 标记语言很快变成了格式化语言。 有广告,肮脏的烦人标语和搜索引擎的推广与欺骗技术-SEO。 网络很快被信息垃圾所堵塞。 超链接不再是一种逻辑通信工具,而是变成了升级工具。 站点被清理,自我关闭,从打开的“页面”变成密封的“应用程序”,成为赚钱的唯一手段。
即使那样,我仍然认为“这里有些问题”。 一堆不同的网站,从原始的首页以vyrviglazny出现,到以“大型门户”结尾,到处都是闪烁的横幅。 即使站点是同一主题,它们也完全不相关,每个站点都有自己的设计,自己的结构,烦人的标语,搜索效果不佳,下载问题(是的,我想离线获取信息)。 即使到那时,互联网也开始变成一种电视,各种各样的金属丝被钉在钉子上,成为有用的内容。
分权化已成为噩梦。
你要什么
矛盾的是,作为用户,我不需要权力下放! 记住我当时的清晰想法,得出的结论是,我需要……一个
数据库 ! 这样的查询将给出所有结果,但不是最适合排名算法的查询。 其中所有这些结果将由我自己的单一设计统一样式和样式,而不是由众多Vasya Pupkin制作的vyrviglaznymi设计。 可以保持离线状态的一种,不用担心明天该站点将消失并且该信息将永远消失。 我可以输入我的信息的一种-例如注释和标签。 我可以用我的个人算法搜索,排序和过滤的一种。
Web 2.0和社交网络
同时,Web 2.0概念已经进入了舞台。 蒂姆·奥雷利(Tim O'Reilly)在2005年将其表述为“一种设计系统的方法,通过考虑网络交互作用,使更多的人使用它们会变得更好” –意味着用户将积极参与网络内容的集体创建和编辑。 毫不夸张地说,社交网络成为了这一概念的顶峰和胜利。 巨型平台将数十亿用户聚集在一起,并存储数百PB的数据。
我们在社交网络中得到了什么?
- 接口统一; 事实证明,创建用户多样化的vyviglazny设计并不需要所有可能性; 所有用户的所有页面都具有相同的设计,并且适合所有人,甚至方便; 只有内容不同。
- 功能统一; 各种各样的脚本也是不必要的。 Lenta,朋友,相册...在社交网络存在期间,其功能或多或少稳定了,并且不太可能更改:毕竟,功能是由人们的活动类型决定的,人们实际上并没有改变。
- 单一数据库; 与使用许多不同的站点相比,使用这样的数据库要方便得多; 搜索变得更加容易。 无需连续扫描各种松散耦合的页面,而是通过复杂的启发式算法对所有这些内容进行缓存,这是对具有已知结构的单个数据库的相对简单的统一查询。
- 反馈界面-喜欢和转发; 在常规网络上,单击搜索结果中的链接后,同一个Google无法从用户那里获得反馈。 在社交网络中,这种连接是简单自然的。
我们失去了什么?
我们失去了权力下放,这意味着自由 。 据认为,现在我们的数据不属于我们。 如果以前我们甚至可以在自己的计算机上托管主页,那么现在我们将所有数据提供给互联网巨头。
此外,随着Internet的发展,政府和公司对Internet产生了兴趣,并且出现了政治审查和版权限制的问题。 如果内容不符合社交网络的任何规则,则可以禁止和删除我们在社交网络上的页面; 漫不经心的职位-承担行政甚至刑事责任。
在这里,我们再次思考:是否可以将分权归还给我们? 但是以另一种形式,没有第一次尝试的缺陷吗?
对等网络
第一个p2p网络出现在Web 2.0之前,并与Web的发展同步发展。 p2p的主要经典应用是文件共享。 第一批网络旨在共享音乐。 最初的网络(例如Napster)基本上是集中的,因此版权所有者很快将其覆盖。 追随者走上了权力下放的道路。 ED2K(第一个eDokney客户端)和Gnutella协议于2000年出现; 2001年,FastTrack协议(KaZaA客户端)出现了。 逐渐地,分散的程度增加了,技术也得到了改善。 具有“下载队列”的系统被山洪代替,出现了分布式DHT哈希表的概念。 随着各州对螺母的要求越来越严格,参与者的匿名性要求也越来越高。 自2000年以来,一直在开发Freenet网络,自2003年以来一直在开发I2P,并在2006年启动了RetroShare项目。 您可以提及许多早已存在且已经消失的p2p网络-现在可以运行:WASTE,MUTE,TurtleF2F,RShare,PerfectDark,ARES,Gnutella2,GNUNet,IPFS,ZeroNet,Tribbler等。 有很多。 他们是不同的。 用途和设计都大不相同...也许你们中的许多人甚至都不知道所有这些名称。 这远远不是全部。
但是,p2p网络有很多缺点。 例如,除了协议和客户端的每个特定实现中固有的技术缺陷外,一个相当普遍的缺点是搜索的复杂性(即Web 1.0遇到的所有问题,但版本甚至更复杂)。 Google并非无处不在并提供即时搜索。 而且,如果对于文件共享网络,您仍然可以使用按文件名或元信息进行搜索,那么,即使有可能,也很难在洋葱或i2p覆盖网络中找到某些内容。
通常,如果我们与经典Internet进行类比,则大多数分散式网络都停留在FTP级别的某个位置。 想象一下Internet,那里只有FTP:FTP:现代站点,web2.0,Youtube……都处于这种状态,并且存在分散的网络。 尽管个人尝试更改某些内容,但几乎没有更改。
内容内容
让我们转向这个难题的另一个重要部分-内容。 内容是任何Internet资源的主要问题,尤其是分散的资源。 从哪里得到的? 当然,您可以依靠一群爱好者(现有的p2p网络就是这种情况),但是网络的发展将相当漫长,而且内容将很少。
搜索和研究内容是与普通Internet一起工作的基础。 有时会保留它(如果内容有趣且有用,那么很多人,尤其是那些拨号上网的人-包括我在内)会明智地将其保持为脱机状态,以免丢失;因为对于我们来说,互联网是不可控制的事情,所以今天没有网站,今天YouTube上有一个视频-明天将其删除,等等。
对于洪流(我们将洪流视为传输介质,而不是p2p网络),通常意味着保留。 顺便说一下,这是种子的问题之一:很难将下载的文件一次移动到更方便使用的位置(通常,您需要手动重新生成发行版),并且绝对无法重命名(您可以进行硬链接,但很少有人知道它)。
通常,许多内容以一种或另一种方式存储内容。 他未来的命运是什么? 通常,保存的文件显示在磁盘上的某个位置,如“下载”之类的文件夹中,位于公共堆中,并与成千上万个其他文件一起位于该位置。 这很不好-对用户本人也很不利。 如果Internet具有搜索引擎,则用户的本地计算机将没有任何种类。 如果用户整洁并习惯于对“收到的”下载文件进行排序,那将是一个很好的选择。 但并非所有人都...
实际上,现在有很多人什么都不存,而是完全依靠在线。 但是在p2p网络中,假定内容已本地存储在用户的设备上并分发给其他参与者。 是否有可能找到一种解决方案,使分散网络中的两类用户都参与其中,而又不改变他们的习惯,而且使他们的生活更轻松?
这个想法很简单:如果我们为用户提供一种方便,透明的方式来保存常规Internet上的内容,并通过语义元信息巧妙地保存,而不是保存到一个通用的堆中,而是保存到一个特定的结构中,并可以进一步结构化,同时将保存的内容分发给分散网络?
让我们从保存开始
我们不会考虑使用Internet来查看天气预报或飞机时刻表。 我们对独立的或几乎不变的对象更感兴趣-文章(从社交网络的推文/帖子开始,到大型文章,例如Habré,在此结束),书籍,图像,程序,音频和视频记录。 信息从何而来? 通常是
- 社交网络(各种新闻,小笔记-“推文”,图片,音频和视频)
- 关于主题资源的文章(例如Habr); 好的资源并不多,通常这些资源也是建立在社交网络的原则上的
- 新闻网站
通常,这里有标准功能:喜欢,转发,在社交网络上分享等。
想象一下,一个
浏览器插件将以特殊方式保存我们喜欢,重新发布,保存在“收藏夹”中的所有内容(或单击该网站上没有特殊功能的浏览器菜单中显示的特殊插件按钮) /重新发布/书签)。 主要思想是,就像您以前做过一百万次一样,系统将文章,图片或视频保存在特殊的脱机存储中,并且该文章或图片可用-并可以通过分散的客户端界面进行脱机查看,并在最分散的网络中! 对于我来说,这非常方便。 无需采取任何不必要的措施,我们会立即解决许多问题:
- 保存可能丢失或删除的有价值的内容
- 分散网络快速填充
- 来自不同来源的内容的聚合(您可以在数十个Internet资源中注册,所有点赞/转发都会聚集到单个本地数据库中)
- 根据规则组织内容
显然,必须在每个站点的结构上配置浏览器插件(这很现实-已经有用于保存YouTube,Twitter,VK等内容的插件)。 没有多少网站适合制作个人插件。 通常,这些是广泛的社交网络(几乎不超过十二个)和一定数量的高质量主题网站,例如Habr(也很少)。 使用开源代码和规范,基于模板空白的新插件的开发不需要花费很多时间。 对于其他网站,您可以使用通用保存按钮,该按钮会将整个页面保存为mhtml-可能是在清除广告页面之后。
现在有关结构化
“智能”保存是指至少使用元信息进行保存:内容源(URL),一组先前设置的喜欢,标签,注释,其标识符等。 实际上,在正常存储期间,该信息会丢失……源不仅可以表示直接URL,还可以指语义成分:例如,社交网络上的组或重新发布的用户。 该插件足够聪明,可以使用此信息进行自动结构化和标记。 另外,应该理解,用户自己可以始终向存储的内容中添加一些元信息,为此,您应该提供可屏蔽的便捷界面工具(我对此有很多想法)。
因此,解决了构造和组织本地用户文件的问题。 这是现成的好处,即使没有任何p2p也可以使用。 它只是一种离线数据库,它知道我们保存了什么,在哪里保存和保存了什么内容,并允许您进行小型研究。 例如,在与您相同的帖子下找到最喜欢所有外部社交网络的用户。 有多少社交网络明确允许这样做?
这里应该已经提到,一个浏览器插件肯定是不够的。 系统的第二个最重要的组件是一个分散的网络服务,该服务在后台运行,并为p2p网络本身(来自网络的请求和来自客户端的请求)提供服务,以及使用插件保存新内容。 该服务与插件一起将内容放置在正确的位置,计算散列(并可能确定此类内容已保存),并将必要的元信息添加到本地数据库。
有趣的是-该系统已经以这种形式使用,无需任何p2p。 许多人使用Web剪辑器,这些Web剪辑器将来自Web的有趣内容添加到Evernote中。 提议的体系结构是这种Clipper的扩展版本。
最后,P2P交流
最好的部分是可以交换信息和元信息(从网络和您自己的信息中获取)。 社交网络的概念已很好地移植到p2p架构中。 可以说,社交网络和p2p似乎是相互建立的。 理想情况下,任何分散式网络都应构建为社交网络,然后才能有效运行。 “朋友”,“群体”-这些是应该与之建立稳定关系的盛宴,而这些关系是自然而然的-用户的共同利益。
在分散网络中存储和分发内容的原理与从常规Internet存储(捕获)内容的原理完全相同。 如果您使用网络中的某些内容(这意味着您已将其保存),那么任何人都可以使用您的资源(磁盘和通道)来专门接收此内容。
点赞是最简单的保存和共享工具。 如果我喜欢-没关系,是在外部Internet上还是在去中心化网络内-那么我喜欢内容,如果愿意,则可以将其保存在本地并将其分发给去中心化网络的其他成员。
- 内容不是“丢失”的; 现在已将其存储在本地,我以后可以随时返回,而不必担心有人删除或阻止它
- 我可以(立即或以后)对其进行分类,标记,评论,与其他内容相关联,通常对它做一些有意义的事情-我们称其为“元信息的形成”
- 我可以与其他网络成员共享此元信息。
- 我可以将我的元信息与其他参与者的元信息同步
拒绝不喜欢也很合乎逻辑:如果我不喜欢该内容,那么我不希望浪费磁盘空间来存储内容以及分配该内容的互联网渠道是很合逻辑的。 因此,不喜欢发生的行为无法有机地融入分散管理中(尽管有时它仍然
有用 )。
有时,您还需要保存您不喜欢的内容。 有这样一个词“必要” :)
“
书签 ”(或“收藏夹”)-我不表示对内容的态度,但是将其保存在本地书签数据库中。
“收藏夹”一词与含义不完全匹配(为此,有喜欢和它们的后续分类),但“书签”却相当。 “书签”中的内容也会被分发-如果您“需要”它(也就是说,您以一种或另一种方式“使用”它),那么逻辑上可能是其他人“需要”它是合乎逻辑的。为什么不利用您的资源呢?朋友功能非常明显。这些是具有相似兴趣的盛宴,这意味着那些可能会感兴趣的人。在分散网络中,这主要是指订阅朋友的新闻提要,并使用他们保存的内容访问他们的目录(相册)。类似于“ 组 ”的功能“-一些集体供稿或论坛,或者您也可以订阅的东西-这意味着接受小组的所有资料并进行分发。也许,“小组”应该像大型论坛一样采用分层结构-这样可以更好地组织小组的内容,以及限制信息流,不接受/不分发对您来说不是很有趣的内容。其余的
应该注意的是,分散式架构总是比集中式架构更复杂。在集中式资源中,服务器代码很困难。在权力下放中-需要在许多平等参与者之间进行谈判。当然,没有加密技术,区块链和其他主要在加密货币上取得的成就就离不开。我想可能需要由网络参与者彼此形成的一些密码互信等级。架构应允许与僵尸网络进行有效斗争,僵尸网络存在于特定的云中,例如可以共同赢得评级。我真的希望拥有技术优势的公司和僵尸网络农场不要接管这种分散式网络的管理;因此它的主要资源将是生活中的人们,能够产生和构造对其他生活中的人们有用且有趣的内容。我也希望这个网络能够推动文明进步。在这方面,我有很多想法,但是这些想法不适合本文的框架。我只能以某种方式说科学,技术,医学等。内容应该比娱乐具有优势,这需要适度。去中心化网络本身并不是一项艰巨的任务,但可以解决(尽管这里的“适度”一词完全不正确,并且根本不反映该过程的本质,无论是内部还是外部...我什至都没有想到这个过程可以被称为)。可能有多余的提及需要确保匿名性-通过内置方式(如在i2p或Retroshare中),以及通过TOR或VPN传递所有流量。最后是软件体系结构(在本文的图片中以示意图方式绘制)。如前所述,系统的第一个组件是一个浏览器插件,可捕获元信息内容。第二个最重要的组件是在后台运行的p2p服务(“后端”)。网络的运行显然不应该取决于浏览器是否正在运行。第三个组件是客户端软件-前端。它可以是本地Web服务(在这种情况下,用户可以使用分散式网络,而无需离开他喜欢的浏览器),并且可以是特定操作系统(Windows,Linux,MacOS,Andriod,iOS等)的单独GUI应用程序。我喜欢同时拥有所有前端选项的想法。同时,这将需要更严格的后端架构。本文未包含许多其他方面。连接到现有文件存储的分发(例如,当您已经有几TB的存储空间被抽空时,您让客户端对其进行扫描,获取哈希值,将它们与网络内部的内容进行比较并加入分发,同时获得有关它们的元信息)自己的文件-正常名称,描述,等级,评论等),连接外部元信息源(例如Libgen数据库),可选使用磁盘空间来存储他人的加密内容(例如在Freenet中),存档与现有分散网络(通常是一片黑森林)的集成结构,媒体哈希(使用特殊的感知哈希来表示媒体内容-图片,音频和视频,这样您就可以比较含义相同,大小,分辨率等不同的媒体文件)等等。文章摘要
1.在去中心化网络中,没有Google的搜索和排名-但有一个由真人组成的社区。具有反馈机制(喜欢,转发...)和社交图(朋友,社区...)的社交网络是去中心化网络2 的理想应用程序级别模型。我在本文中引入的主要思想是自动从中保存有趣的内容像安装/重新发布时一样定期上网;它甚至在没有p2p的情况下也非常有用,只需维护一个有趣的信息的个人档案即可。3.该内容还可以自动填充去中心化网络。4.自动保存有趣的内容的原理也适用于去中心化网络本身的点赞/转发。