Harmony 的 RPC 网络革新
2022-08-13 18:00
Harmony
2022-08-13 18:00
Harmony
2022-08-13 18:00
订阅此专栏
收藏此文章

定义:“RPC”~远程过程调用……让我们了解得更清楚一点。其起源可以追溯到 1981 年。由于很难访问区块链的数据,因此,RPC 服务层被添加到几乎所有区块链当中。


Harmony 区块链可以通过 URL——api.harmony.one(通常被称为“端口”)的 RPC 服务进行访问。这一端口由 Harmony 基金会慷慨地进行免费托管,用以访问存储在 Harmony 链上的数据。当用户决定添加或改变 Harmony 区块链数据时,将以原生 Harmony ONE 代币的方式收取(gas)费用,除此以外,通过 RPC 对区块链数据集进行读取是免费。


亮点

在过去的 12 个月当中,Harmony 的 RPC 服务托管 api.harmony.one 端口有了巨大的提升,并将在下一季度继续努力。在 2021 年 12 月的高峰期,Harmony 生态中对 DeFi 活动需求真的很高时,大多数使用 MetaMask(小狐狸钱包)链接到 api.harmony.one 的社区用户感受到了最大的痛点。在撰写此文时,阵痛已经平复下来,这让我们有机会回顾过去的一年中,看看 Harmony 为了扩展所付出的努力、我们面临的问题、正在发生的变革以及当前的情况。


一切努力都是为了服务于访问 Harmony 区块链数据集,充满活力的区块链用户生态。


当一切尘埃落定

为了让大家了解 Harmony 一开始在哪里托管最初的 RPC 服务,我在这里做一个简短的介绍。自 2018 年 Harmony 的主网上线到 2021 年 8 月底,用户实际上是在拨入美国西海岸地区一个单独位置。(此时)用户跨越大西洋彼岸到达 Harmony 链的延迟超过了 200 毫秒(在我看来,任何超过 20 毫秒的延迟都是难以接受的)。

2021 年 8 月,一个(注 1)为 api.harmony.one 托管 RPC 服务的数据中心。


为了满足未来的用户需求,我们决定开始扩展到全球多个地理位置,首先是美国的东海岸,接着是欧洲,然后是亚洲。(如果不这么做),我们将无法在 DeFi summer(DeFi 之夏)为生态建设者的最终用户提供世界一流的服务。


合作启动

我们在 2021 年的第 3 季度与基础设施合作伙伴(他们也非常忙碌!)一同寻求合作方,也很快找到了那些有能力并且有意愿与我们合作的伙伴。我们很高兴与 Pocket Networks 达成第一次集成合作关系,接踵而至的是与 Chainstack、QuickNode 和 Ankr 的一系列快速合作。


我们迫不及待地想要完成与合作方的整合,其中一些需要数个月(其他的则需要半年)的累积工程时间才能完成。Harmony 生态系统的成功取决于可靠的服务,我们的扩展于 2021 年 9 月开始,并分多个阶段完成。我们努力跟上每周以两位数百分比不断增长的访问流量需求!


贴近客户

到 2021 年 11 月底,我们从最初的一个云服务供应商,到将服务可用性扩展向全球 4 个地区。通过基于地理延迟的路由基础,我们能够将用户引导到最近的数据中心。这无疑改善了他们的用户体验,但这还不够!

到 2021 年 12 月:扩展到 4 个地理区域


用户不断抱怨停电状况,尤其是他们所在地区的高峰(用电)时段,或者 DeFi 领域有我们不知道的事件发生。我们有能力检测某一个区域的服务中断,并慢慢将流量引导到下一个最近的区域,但我们并没有根据流量而自行扩展的架构。每个数据区域几乎每天都开始出现故障,区块同步开始落后,直到我们在一个区域的负载平衡器后放入更多的节点,而这可能需要一整天的时间。


此外,负载平衡器还没有足够快的响应速度来检测每个服务器的中断(落后超过 5 个区块),因为我们的设置被调整到只允许连接到负载平衡器的 Harmony 区块链节点在报告中断 30 秒后才会离线。这是区块链 RPC 服务中一个典型的扩展问题。


多云的高可用性

紧接着,我们在 2021 年 12 月对这一问题进行了跟进,以更具成本效益的价格使用了另一家云服务供应商,将容量扩大了一倍。我们确保在 2022 年 2 月达到了一个稳定的状态。


而两个月后,除了增加更多的服务器,我们还在每个 Harmony 节点前添加了一个 nginx 反向代理服务器,以减轻其作为网络服务的职责(如排队),但只是在服务 RPC 流量的能力上略有提升。这也使我们能够汇总流量进行分析,并收集数据以帮助了解我们的流量模式。现如今,我们已经不再依赖时间序列数据,而是能够查看每一个单独请求,并以难以置信的高真实度报道 RPC 流量模式。


这时,我们发现每天都有 6 亿次 RPC 请求。这太惊人了!


每天超过 6 亿次请求

在 DeFi summer(DeFi 之夏)的高峰期,我们估计每天都有超过 10 亿次的请求,但由于缺乏高度可信的聚合数据,我们不太有信心做出这样的判断。


而随着 2021 年第 4 季度 Pocket Networks 的上线,以及 Harmony 在 RPC 基础设施方面的扩展,我们将其保持在了一个稳定的状态,但托管成本通过逐渐增加服务器达到了一个不堪重负的地步。当我们配置好反向代理服务,将数据汇总到 ELK 堆栈中时,我们立即看到了其真实性。2022 年 4 月,我们确认并记录了每天超过 6 亿次的 RPC 调用服务

平均每 30 分钟有 1250 万次 RPC 调用,每小时有 2500 万次,即每天有 6 亿次的 RPC 调用。


一个月后,我意识到,每天 6 亿次的 RPC 调用并不是访问 Harmony 区块链数据的唯一流量。在参加 Pocket Network 的InfraCon时,他们的报告中写道,运行 Harmony 节点的 Pocket Network 验证者社区每天见证了另外的 2 亿次 RPC 调用!这意味着至少有一半以上的 RPC 调用都来自于 Harmony。也即是每天至少有 8 亿次的 RPC 调用访问 Harmony 的区块链数据。这等于说,在一眨眼的时间里,就有超过 3000 次的 RPC 调用会从我们身边闪过。


打击垃圾邮件流量

我们目睹了整个数据中心区域(一个负载负载器后方有十几台服务器)在落后于同步区块的情况下,尝试同步区块链的 2 秒快速区块时间,同时为 RPC 流量提供服务。(这一)架构比较古老,因为这些是相同的节点。nginx 反向代理服务器使我们能够实现额外的速率限制,限制垃圾邮件的流量。


垃圾邮件的流量是如此庞大,以至于连 Harmony 的区块链协议都必须升级(参见 v4.3.2 和 v4.3.3),来削弱不友好的垃圾邮件流量和类似的 MEV 攻击。我们还两度调高了 gas 费用,其中一次是 2022 年 1 月增加到 30gwei,另一次是在 2022 年 7 月,增加到了 100gwei(参见 GitHub 变更)。


是时候降本增效了……因此要弹性化

我们清楚这是不可持续的,于是开始发起一项倡议,研究有哪些可行的选择。Ankr 的 Erigon 在币安智能链上的部署似乎很有希望,但 Harmony 的架构在底层有太多变化,无法轻松切换。


团队最终踏上了构建Elastic RPC的道路。


Elastic RPC 是依据亚马逊网络服务的 Elastic Cloud Compute(弹性云计算)(或 EC2)的灵感所命名。这一新的架构是一个“写入一个,读取多个”的概念,类似于一个典型的数据库横向扩展解决方案。我们能够建立一个高效的索引数据存储,能为所有与 EVM 兼容类型的 RPC 请求提供服务。

Elastic RPC(未来)将根据需求进行扩展


构建 Elastic RPC 背后的过程有着成长的痛苦。虽然我们在全球范围内将托管在负载均衡器后面的服务器数量从 100 多个节点缩减到 50 个以下时,但我们仍依靠着一个高效(索引)的新区块链数据库为 Harmony RPC 服务。然后,我们在 Elastic RPC 和常规的 Harmony 验证者节点之间对流量进行拆分,在服务于 RPC 流量的同时,同步区块链数据。


我们于 2022 年 4 月开始行动,2022 年 6 月在一个未公开的地理位置推出了新的服务。但在遭遇到极端案例的情况下,最初经过实战测试的索引服务在运行健康的数据库时出现了问题。尽管这一问题很快就得到了解决,但我们面临的 Harmonauts(Harmony 忠实用户)对更可靠 RPC 服务的需求还未能得到满足。


截至撰写本文之时,我们仍在同步第二个未公开的数据中心位置,以托管 Elastic RPC 服务。随着时间推移,我们将能在全球范围内推出(该服务)。我们还计划将这一结构开源,使任何 RPC 供应商都能够改进他们的 RPC 服务产品,甚至可以把这一架构集成到他们任何 EVM 兼容链的 RPC 服务中。


坚守于此

我们一直在进行建设,从加密市场的沉寂中所获得的安静时间正帮助我们集中精力。使用 Elastic RPC,Harmony 的 RPC 服务将更降本增效。此外,最初的测量(数据)见证了我们在响应时间和服务可靠性方面的改善。我们还希望将这些服务过渡到去中心化的 Pocket Networks 社区以及中心化的 RPC 服务供应商,如 Infura、Chainstack、Ankr 和 QuickNode。


我们都将会走向成功……



关于 Harmony


Harmony 是您的数字资产、藏品、身份、治理的开放平台。我们是一个开源且高效的区块链。


我们的主网可运用以太坊的应用,并且确认交易的时间仅为 2 秒,费用比以太坊本身低廉 1000 倍。Harmony 的安全跨链桥也提供与以太坊链、币安链与其他链的跨链资产转移。


立足于 Harmony,桥接到所有链。成为 ONE 而跨万千。


我们❤️开发者! 

扫描二维码,加入 Harmony 中文社区

加入 Harmony,共创信任、公平新经济体!


记得点个“在看”哟!

相关Wiki

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

Harmony
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开