对于以太坊用户来说,真正的灵魂三问莫过于:我在做什么交易?我该给多少的Gas?应该把GasPrice设成多少才经济实惠?
简单来说,Gas是用来度量以太坊上一笔交易所需花用的计算量的单位。一笔交易的复杂度越高,所需花用的Gas也就越多,所以,越是复杂的交易,在发起交易时越要设定较多的Gas额度,如果发起者预留的Gas数量不够多,交易会因为计算资源耗尽而失败。
但是好就好在,这事用不着操心,可以设一个自己的账户支付得起又充分大的数值,因为,没有用掉的Gas是不会计算手续费的,换言之,虽然你设置了这笔交易可以用掉100Gas,但实际上只用掉了20Gas,那打包你的交易的出块者就只能得到20Gas的手续费,不能白收你的。此外,现在的Gas使用量估算技术已经很普遍了,用户使用Metamask钱包插件跟应用交互的时候,会发现自己根本不需要手动设置GasLimit,插件已经帮你估算好了。
Doodles社区委员会推出Launchpad计划:7月15日消息,NFT项目Doodles发推称,Doodles社区委员会已推出Launchpad计划“Inkubator”,旨在为Doodles的OG持有者提供包括社区活动、营销合作、商业实验、定制计划等支持。Inkubator的核心是社区资助,这些一次性赠款将提供给Doodles OG持有者。此外,Inkubator还引入了提案请求(RFP)的概念,成员可以通过将具体想法变为现实来竞争合同。该Launchpad平台下的第一个提案请求是驻场艺术家计划,旨在吸引社区艺术家创作GIF、独家艺术作品等,以扩大Doodles品牌影响力。接下来几周内,Doodles还计划为Inkubator推出更多功能,包括赠款、奖励和其他提案请求,推动平台不断发展,从而为社区提供新的参与和创新机会。[2023/7/15 10:56:52]
但是讲到GasPrice,就头疼了。大家都知道,这个参数表达的是交易发起者自己愿意为每一单位的Gas支付的价格,而这部分价格最终会被打包该笔交易的出块者得到;有鉴于此,出块者当然青睐那些GasPrice高的交易。但是,谁不想让手续费便宜一些呢?谁不想经济实惠地达成交易呢?
流动资金池协议Shell Protocol宣布推出社区论坛:针对稳定币优化的流动资金池协议Shell Protocol发推宣布推出社区论坛,希望成为充满活力的生态系统。官方邀请社区加入并参与讨论。[2021/2/3 18:47:05]
因此,几乎所有的以太坊用户在日常使用中都会接触到一种工具:Gas价格指示器,它的作用是告诉你,你设置多少的GasPrice,就能让自己的交易在自己想要的时间内被打包。比如下图展示的就是生态里可能是最常用的Gas价格指示器:GasStation。
它的大意是说:如果你想要自己的交易在2分钟之内被打包,那就要设置95Gwei乃至更高的Gas价格;如果你只需要它在5分钟之内被打包,那设置成79Gwei以上就好
加密社区向损失全部比特币的播客主持人捐赠0.7个BTC:6月15日消息,加密社区成员已向损失全部比特币储蓄的播客主持人Eric Savics捐赠了0.7个BTC。据此前报道,Eric Savics因从谷歌Chrome商店下载了恶意版本的KeepKey比特币钱包,而遭到网络钓鱼攻击,导致其损失12枚比特币。(Cointelegraph)[2020/6/15]
大多数像你我一样的用户,在使用GasStation时都不会发觉有什么问题。但是,假如你要做高频的交易呢?或者假如你要写一个交易机器人呢?GasStation真的可以依赖吗?
这可不是在找茬,也不是装神弄鬼。这篇文章就提到了2020年3月14日时候许多用户的艰难遭遇:在以太坊协议中,一个账户发起的交易是有顺序的,由一个只增不减的流水号nonce来标记顺序;当你的前序交易因为GasPrice太低而被出块节点丢弃的时候,不论你给后序交易设置再高的GasPrice,都于事无补,因为节点不能越过前序交易直接打包后序交易,但是前序交易已经丢弃了,这就等于使你的账户锁死了。唯一的解救办法就是找回你最早一笔还未上链的交易,使用这笔交易的流水号重发一笔交易,并且GasPrice要足够高。同样地,许多交易机器人也因为同样的原因被卡,原因就是因为它们依赖的Gas价格报告器对网络Gas价格的预估有误,发出几笔交易之后,机器人就卡死了。
这些血淋淋的教训充分说明了,为每一笔交易安排合适的Gas价格,有多么重要。因为当链上应用活跃的时候,一笔交易的成功不仅会影响这笔交易,还会影响后序交易。
但是,是什么阻碍了我们获得准确的Gas价格估计呢?我们能克服吗?
在最根本上来说,阻碍我们的是区块链网络的点对点网络架构:所有节点都是分散的,当某一笔交易被发送到一个节点时,该节点做一定的校验之后会把交易数据广播给其它节点;这种网络结构决定了,没有任何一个节点能实时获得整个网络的未处理交易的全局状态,交易的传播需要时间,也需要偶然。对于这一点,我们只能改善,不可能从根本上克服,因为我们不想要一个中心化的网络结构。
但另一方面,至关重要的是我们预估Gas价格的方法。目前为止,绝大部分Gas价格指示器所用的方法,都是根据过去一段时间里被打包到区块里的交易的Gas价格加以统计方法处理,得出对未来Gas价格的估计。仔细想想这其实很不合理,在你发交易的这一刻,决定你的交易多快能上链的是现有未处理交易中比你交易的Gas价格更高的交易有多少,以及在你的交易还未打包的这段时间里有多少人发出了比你的Gas价格更高的交易。拿已经上链的交易,也就是历史数据,去做这样的预估,貌似合理,实则荒谬。当网络活动快速增加、Gas价格快速攀升的时候,按历史数据估计的方法大概率只能给出低估的Gas价格。更准确的估计应该基于现有未处理交易的Gas价格分布,哪怕还需要统计方法处理,也会比拿历史数据来估计要更简单。
这就是GasNow厉害的地方。它不再基于历史数据来预测未来,它基于星火矿池节点的交易池中交易的Gas价格分布。为了收益的最大化,矿池一方面要尽可能地收集交易,另一方面,要从高到低打包交易池中待打包的交易。所以,GasNow给出的数据,是真正具有参考意义的。
如图,网页直接告诉了你矿池交易队列中由高到低排序的第50笔、第200笔、第400笔交易的Gas价格。这就有的放矢了
理论上来说,所有的Gas价格指示器,都应该转变成GasNow这样的模式,不再根据历史数据,而是根据实时数据,来帮助用户做决策。但饶是如此,GasNow也是有竞争力的。因为矿池的交易池会比普通的、没有优化的节点的交易池更全面,更有参考意义。
GasStation在自述中说,“希望能提高Gas价格的透明度”,这当然是个很有意义的目标;而且,Gas价格的不清晰,其实根值于网络的点对点特性,值得更多人作出更多的尝试,用服务本身的分散性来降低点对点网络带来的不确定性、使我们获得更全局的视野。
但至少,GasNow应该是离这个理想更近一步了。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。