HOPR技术日幕后花絮

antPower
HOPR Chinese
Published in
Aug 8, 2022

整个 HOPR 团队于 7 月的最后一周在苏黎世会面。作为一个团队成员遍布全球的去中心化项目,让所有人同时聚在一起是一件难得的事情,所以我们想充分利用它。

我们进行了很多精彩的讨论和活动,但今天我想分享一下我们技术团队架构讨论的幕后花絮。结果将对 HOPR 节点的工作方式产生深远的影响,并帮助我们更快地构建更稳定的版本。

致力于以太坊核心重构的技术团队

我们在苏黎世科技园会面,进行了一整天的讨论、头脑风暴和设计。结果是对协议架构以及我们如何编码、测试和管理版本进行了一些重大改革。

重构核心-以太坊

我们最重要的决定是重构 HOPR 协议中的核心以太坊组件。顾名思义,核心-以太坊充当核心(libp2p,连接)和以太坊(智能合约)组件之间的桥梁。它负责 HOPR 协议的许多关键部分,包括评估支付通道拓扑的当前状态、广播和索引进出区块链的交易,以及管理本地存储的数据库。

它曾经看起来像这样:

旧的核心-以太坊架构

这是一个令人愉悦的简单流线型设计,但不幸的是,这种简单性掩盖了一些问题:很难梳理出子组件以进行细粒度的工作,并且一些真正属于核心以太坊的子组件被搁置在协议的其他部分。我们想要一个新的设计,真正指定所有不同的部分以及它们如何相互作用,让团队更清楚地了解整体,更轻松地在各自关注的领域工作。

下图展示了新设计的所有内容!

更新了核心以太坊架构

尽管看起来可能更复杂,但将这些组件分离出来并给它们一个明确定义的目的将使开发和测试变得更加容易。

这种架构设计的一个关键因素是它与我们迁移到 Rust 的长期目标兼容。与之前的设计不同,此设置可以顺利迁移到 Rust,同时保持组件之间几乎相同的接口。

这是技术团队架构讨论的主要成果,但我们还做出了一些其他重要决定,这将改善我们的开发流程并帮助我们更快地生产出更好、更稳定的版本。

发布流程、测试和编码实践的改进

我们将更新代码库以包含各种新工具,包括改进的代码覆盖率、linting 和更多的自动化。

HOPR 发布是一个重大事件,有很多步骤和测试。与复杂的开发一样,有时会出现问题,您必须回到流程的早期部分。

我们在这里已经实现了高度自动化,但是在旧的设置中,这里仍然存在一些手动步骤,这可能会导致瓶颈,尤其是团队成员在这么多不同的时区。我们将把这些自动化,这样从长远来看,我们可以为技术团队节省大量时间。如果事情没有按计划进行,将自动创建 PR,以便更轻松地解决它们。

对于我们尊贵的 AVADO 社区来说,好消息是我们将实施自动节点迁移。当我们将新的公共版本推送到 AVADO 时,所有节点都会自动更新到新版本。当然,在我们实施此之前,我们将运行严格的测试以确保不存在兼容性问题并且用户资金始终是安全的。

最后,我们 在协议级别更改了协议标识符,因此同一环境中的不同版本可以相互通信。

当我们刚开始开发 HOPR 时,来自不同版本的节点无法相互通信,即使这些版本之间的差异很小。我们测试网的普通参与者可能会记得在推送修补程序时重新安装他们的节点的步骤。

我们后来引入了环境(以城市命名),但这种行为仍然存在,即使它不需要。显然,这不会带来出色的用户体验,因此我们将删除此行为,以便在对版本进行小幅更新时重用环境。主要更新将需要一个新环境,节点仍然无法跨环境通信,但这会少得多。

这是美好的一天,技术团队全力以赴,带来了将在短期和长期内获得丰厚回报的改进。

这项工作都发生在幕后,因此用户和社区成员不太可能直接看到此重构的任何结果,但每个人都将受益于更短的发布时间、更稳定的节点以及更长时间支持更大网络的能力!

与往常一样,请随时查看我们在Github上的进展,或通过我们在Twitter 上的双周技术更新。

作者:Steven Noni — HOPR 软件工程师和赏金大师

官网: https://www.hoprnet.org
推特: https://twitter.com/hoprnet
Telegram: https://t.me/HOPRChinese
Discord: https://discord.gg/dEAWC4G
领英: https://www.linkedin.com/company/hoprnet
论坛: https://forum.hoprnet.org
Github: https://github.org/hoprnet

扫码添加我们助手微信加入微信群👇

--

--