值得信赖的区块链资讯!

Harmony的RPC网络革新

Harmony

定义:“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达成第一次集成合作关系,接踵而至的是与ChainstackQuickNode和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。


我们都将会走向成功……


说明:比推所有文章只代表作者观点,不构成投资建议
原文链接:https://www.bitpush.news/articles/3010678

比推快讯

更多 >>

下载比推 APP

24 小时追踪区块链行业资讯、热点头条、事实报道、深度洞察。

邮件订阅

金融科技决策者们都在看的区块链简报与深度分析,「比推」帮你划重点。