技术方面情况有些平静,但这并不意味着我们很闲——事实上恰恰相反! 自从二月份发行 HOPR 代币以来,我们一直在为即将发布的 Eiger 版本而全力以赴。
我们知道你们一直在耐心等待——而有些人比较焦急——想要开始质押您的 HOPR 代币,但创建一个安全、强大和公平的实施需要微妙平衡,且我们还需将隐私考虑进去。
让协议摆脱对引导服务器的依赖是一个巨大的障碍,测试网的参与者应该还记得这是不稳定和停机的主要源头。 这个障碍终于被 DEADR 清除了,且会在即将发布的 Kiautschou 版本中引入,如果内部测试顺利,该版本应该会在下周末发布给大家。
初期问题
在我们的代币发行之前,HOPR 的工程团队就已经不知疲倦地开发 HOPR 协议。
在此提醒一下,我们 HOPR 正在实施第 0 层隐私混合网络,来允许任何人私密地交换数据。 到今时今日,您可能已经测试过我们的Jungfrau官方版本了,打开了一些通道,发送了一些消息,并通过 wxHOPR 获得了一些小票,以展示我们的中继证明概念。
不幸的是,如果您运行过Jungfrau版本,您可能已偶然遇到过以下屏幕:
说明:这相当于 HOPR 节点的蓝屏死机。
在我们的Telegram中询问此事,大使们可能会将您引导至我们的状态页面。 诊断问题? 我们的引导服务器可能已关闭。 解决方案? 服务器重新启动后,请稍后再试。
这并不有趣,而且在实施覆盖流量和质押方面一直是一个令人头疼的问题。 HOPR 质押模型的美妙之处在于它直接整合到隐私协议中:它不仅是任意向巨鲸分配资金的方式,它是激励混合网络的基础部分。
但这只有在每个人都可以公平地访问网络的情况下才有效。在引导服务器的问题下人们可能会随机被锁定在HOPR网络外,所以质押在初期是不可能的。
幸运的是,下一个 HOPR 版本彻底改革了节点加入 HOPR 网络和中继数据的方式,大大减少了对引导服务器的依赖,并为覆盖流量和质押铺平了道路。
要了解所有这些是如何工作的,我们需要看看为什么 HOPR 如此长时间依赖引导服务器。
那么引导服务器是什么呢?
去中心化网络并非凭空出现。 节点需要知道从哪里开始加入网络,然后他们需要找到该网络的其他成员来交换数据,即使新节点上线和下线也是如此。 而且在您将隐私纳入混合之前,这已经足够困难了:您如何加入并跟踪一个没有人应该知道任何人所在位置的网络?
最简单的答案是使用引导服务器。
在去中心化的网络中,引导服务器就像一个聚会的主持人,它知道每个受邀的人。 它是一个(或多个)节点,通过作为第一个入口点来托管网络中其他节点的信息,并将每个人的地址存储在称为分布式哈希表 (DHT) 的数据结构中。 每当一个 HOPR 节点启动时,它都会寻找一个默认的引导服务器,在那里宣告自己,供其他人找到。 这是一个非常标准的方法。 例如,Golem 网络使用类似的策略向其提供商宣告其部分基础设施。
说明:在去中心化网络的中心化引导过程中(如左图所示),通常有一个或多个入口点。 节点将它们的地址 (1) 注册到引导服务器以进行记录,以便其他节点可以看到它们。 发现后,将尝试在节点之间建立直接连接 (2),从而跳过对引导服务器的需要。 但是,当这失败时,引导服务器可以继续用作为中继节点 (3)。
现在,对于大多数区块链应用程序来说这不是问题。 首先,大多数客户端(例如 geth、bitcoind)通常要求将软件暴露在可公开访问的 IP 后面,或者要求他们的用户转至他们的家庭设置或使用静态 IP。 其次,每当连接丢失和/或其他对等节点未能向其他节点宣告自己时,他们可以继续找其他节点,直到他们到达足够多的对等节点以被纳入考虑。 这是没问题的,因为通常您只需要就区块的最新状态达成一致,并跟踪节点进行的最新交易。
但,这种方法对于 HOPR 来说还远远不够。 如果节点之间没有稳定的连接,它们之间共享的数据包可能会在传输过程中丢失。 这意味着发件人不会收到小票并因此没有运行他们的节点的动力。由于 HOPR 在没有适当中继的情况下无法用作混合网络,因此可能网络可能会遭受多次攻击,从而暴露 HOPR 用户的隐私。 与其他只使用几个可靠节点就能运行的协议不同,HOPR 需要尽可能多的对等节点才能正常工作。
回到我们最初的问题,使用这种策略的引导服务器会降低整个网络的可靠性。每当服务器停机时,新节点都无法链接,并且无法中继直接连接。简而言之,这不仅对新节点造成连接故障,同时也导致现有节点的中继故障。
DEADR介绍,一种终止引导服务器问题的策略
由于引导服务器与“标准”HOPR 节点运行相同的软件,我们很快意识到如果不将引导服务器限制在HOPR协会就可以提高它们的可靠性。简而言之,如果我们将 HOPR 节点配置为在它们公开可用时(即在公共 IP 后面)“识别”自己,它们既可以用作引导服务器,也可以用作普通节点。
最重要的是,如果每次节点进入网络时,我们都将其地址存储在引导服务器的 DHT 之外的某个地方,我们就可以避免必须从单个引导服务器请求网络 DHT。 由于我们已经在使用区块链来结算节点的付款,我们也可以使用区块链来存储这些数据并在以后复取它。 毕竟,我们使用相同的机制来存储我们的支付渠道。
鉴于这些想法,去中心化入口公告和分布式中继策略(简称 DEADR)诞生了。 DEADR 在其核心定义了三个基本原则:
- 在任何允许的情况下,位于可公开访问的 IP 后面的 HOPR 节点应将其地址广播到我们的 HOPR 智能合约,以注册为引导服务器。
- 所有服务器都可以在启动节点后立即使用区块链将自己注册为网络的入口节点。
- 中继不再局限于单个入口引导服务器,而是可以由先前注册为入口节点的任何 HOPR 节点执行。
DEADR 已经在我们的 GitHub 组织中发布,第一次实施将在我们的Kiautschou发布里(其实这是Stirling发布的其中一部分,但在与公众分享之前我们还想实现更多功能)。 与往常一样,您可以在我们的 GitHub 中查看所有这些内容。
常问问题
您可能会有几个问题:
这是否意味着其他节点运行者将使用我的节点来中继流量? 这不会泄露数据包的隐私吗?
如果您的节点位于公开可用的 IP 后(如果您使用的是云提供商则很有可能),那么您的节点可能会被用作中继。 但是,由于 HOPR 使用 SPHINX 数据包格式,即使您的节点用于中继流量,您也无法检查网络之间共享的任何流量。
与其他节点相比,我的节点用作中继会影响其性能或内存吗?
我们还没有准确测量这一点,但据我们的引导服务器的分析这很有可能。 但是,如果您的节点用作中继,则意味着它具有对其他节点开放的通道,因此更有可能被接收以进行覆盖流量。 所以您会有回报的,这是您应得的。
下一步与通往质押之路
您可以期待在我们的下一个版本 Kiautschou 中首次实现带有 DEADR 的 HOPR,这些都将在6月18日之前用于社区测试。 这不是一个完整的公测,但如果您对我们的进展感兴趣,这是个运行节点和测试网络的好机会。 与往常一样,以测试为目的,请不要在您的节点上放置超过10个wxHOPR - 现在添加更多并没有任何好处。
DEADR 的实施也终于为覆盖流量和质押打开了道路,这是 HOPR 协会用来启动网络流量的激励机制。
还有个令人兴奋的消息是,我们将在6月18日召开社区线上会议,即 Kiautschou 发布的同一天,我们将演示发布和讲述质押和覆盖流量的计划,并回顾过去几个月 HOPR发生的事情。 有关此次线上会议的详细信息将在下周分享,我们希望你们都能来参加。
Jose Aguinaga,
HOPR 工程主管
Website: https://www.hoprnet.org
Twitter: https://twitter.com/hoprnet
Telegram: https://t.me/HOPRChinese
Forum: http://forum.staging.hoprnet.org
GitHub: https://github.com/hoprnet