AMIS如何透过自动调整交易矿工费来降低网络发生阻塞

当网络发生堵塞,交易迟迟不上链会发生什么问题呢?使用者或是钱包服务提供商,该如何减少这类情况的发生?本文将针对上述问题做探讨,并且介绍AMIS Wallet Service 目前针对发送交易的使用体验所做的优化。

交易延迟上链所产生的问题,可能比你想像得严重

在发送交易并广播到以太坊网络上时,发送者必须明确指定愿意支付的gas price 以及gas limit,矿工会依据这两项参数去判断是否要先将这笔交易包进区块验证,决定了这笔交易上链的速度。

许多使用者会认为,交易延迟上链,就只是比较晚收到钱,有些人会用「卡币」这个词去形容这个状况,但这个说法只考虑到了帐本状态改变的延迟,在支援智能合约的以太坊网络中,还需要考虑到合约状态改变的情况,在一些有时效性的Dapp 应用场景中,这样的延迟将会导致非预期的结果。

黑色星期四事件

稍早在今年三月时,全球经济受到重挫,美股熔断数次,连带也影响了虚拟货币的市场,最终在三月十二号,ETH 币价大跌,蒸发将近一半的市值。

ETH price chart from coinmarketcap.com

大幅的市场波动也造成了网络塞车,平均的gas price 应声飙高,印象中,当时发送的交易若希望快速上链,需要支付将近200G wei 的gas price。

Average Gas Price Chart from etherscan.io

当天除了一些中心化交易所有发生卡币之外,许多DeFi 应用、交易所触发的大量清算也受到瞩目,因此3/12 被称为币圈的黑色星期四。

由于DeFi 应用是运行在链上,面临阻塞的网络,资产清算拍卖的过程可能会有几个问题:

  • 债务人无法紧急偿还债务或是增加抵押资产避免清算
  • 拍卖竞标者无法即时出价导致拍卖以极低价格成交
  • oracle 服务无法提供最新报价,影响清算程序

其中具代表性的例子,即为由MakerDAO 所治理的稳定币系统DAI,发生了零元清算,导致债务无法被清偿,系统亏损,最后决定增发MKR token 来弥补系统债务。

此次的事件可说是全网的一次压力测试,从使用者及钱包服务提供者的角度,能够及时因应网络情况而调整gas price,让交易能够尽量符合预期的上链时间,会是较理想的情形。

提升交易收发的使用者体验,是AMIS 在开发钱包服务(AMIS Wallet Service,以下简称AMIS WS) 时着重的目标之一,其中一项就是gas price 预测以及动态调整。

AMIS Gas Price Prediction (GPP)

为了要能即时掌握gas price行情,AMIS Wallet Service持续观察网络使用情形,并透过GPP统计历史资料做出当下gas price预测。事实上也有第三方服务提供gas price参考资讯,例如ETH Gas Station以及Etherscan Gas Tracker,每家计算方不尽相同,AMIS为了在网络流量发生变化时,能取得更具优势的gas price报价,因此选择建立自己的GPP系统而非仰赖第三方API。

下图为AMIS GPP 的纪录,确实响应了当时网络的阻塞情形。

AMIS GPP system metrics

AMIS WS 允许使用者发送交易时不带入指定的gas price,系统将会参考GPP 所提供的资料填入适当的gas price,并透过持续监控,确保交易能顺利上链。

AMIS Transaction Watcher

除了gas price 预测之外,持续监控并且即时调整,是确保交易能够上链更重要的一环。以个人钱包而言,也许使用者可以自行监控交易状况并且手动调整,但若是在企业钱包服务的场景之下,自动化监控必然是较务实的做法。

AMIS Transaction Watcher 会针对采用AMIS GPP 机制的交易做监控,定期检查交易状态,若交易超过等待上限仍未被矿工确认,系统会自动取得最新的gas price 并且检查是否有符合10% 门槛的要求(内容相同的交易,gas price 必须超过前者10% 才会被矿工接受),重新签名广播出去。

需要留意的是,为了保留空间可以调整gas price,AMIS WS 会额外计算account pending balance,针对会使用这项feature 的使用者,建议维持较高的余额水位。

下图为正常网络状态下,AMIS 钱包发送交易的上链等待时间分布

而针对黑色星期四的期间,整体交易上链等待时间分布并无大幅改变

结论

如何在手续费以及上链效率之间取得平衡,是许多使用者经常要面临的抉择,对于频繁收发交易的企业而言,一套可靠稳定的钱包服务可以免去许多繁琐的监控作业,让企业可以专注在其商业逻辑。对AMIS WS 的使用者而言,发送交易只需要一笔API request,无需烦恼监控交易以及对各种网络情形的应变,即使网络发生阻塞,仍可以预期交易在有效时间内可以被矿工确认。

本文链接地址:https://www.wwsww.cn/btbkuangye/5985.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。