ETH链上数据字段解读和Gas设置

Sky产品经理

共 4197字,需浏览 9分钟

 · 2023-08-21

1. 前言

区块链浏览器上一笔交易产生的数据很多,作为新手很多字段都不知道是什么意思。为什么要了解这些知识?结合我的实践,有以下几点:

  • 区块链是不可篡改的,所有的数据都在链上,你发起转账判断是否交易已完成,最好的方式是去链上看信息确认。

  • 当你发起交易的时候,如果对方一直没有收到币,你可以去链上查看交易的状态是成功还是失败。

  • Ethereum的手续费特别贵,设置Gas Price可以节约一点手续费,这需要懂区块链上的数据和字段。

  • 当你的交易一直无法完成时,加速或者取消当前这笔交易,你需要区块链浏览器的数据作为辅助。

  • 分析链上的数据,包括某个币哪些地址是大户,占比是多少等……


2021年的时候,我也花过一点时间去了解区块链浏览器上的数据字典含义和Gas设置,自认为了解得差不多、够用了。直到最近做zkSync刷空投的任务,从Ethereum跨链到zksync era链,使用Metamask钱包交易的时候,修改Gas的参数,尝试了2次都失败了,白白浪费了10u左右的Gas(穷0-0)。那一瞬间,我觉得在区块链世界里,每一笔交易都和Gas相关,那肯定得多花点时间,把Gas相关的知识点吃透,以后在交易的时候调整参数才能游刃有余。

      
        1 ETH = 1,000,000,000 Gwei
      
      
        
          
1 Gwei = 0.000000001 ETH (10-9 ETH)
    


2. 区块链浏览器首页介绍

Ethereum (ETH) Blockchain Explorer

e74c3f76902c059af527c5391d9fd974.webp

该页面上,大部分的数据都可以点击进入查看详情。

3. 区块高度页

区块状态有3种:Unfinalized、Unfinallized(Safe)、Finalized。

bac7c9046bc5de544ff6c2b366f4e482.webp

4. 交易详情页

交易的编号,这些名词是同一个意思:交易ID、Transaction ID、交易哈希、Transaction Hash。

f8892a31a4a18066211d2bb596b1f535.webp

Gas Limit(燃料上限):在这笔交易愿意花费的最大数量的Gas单位。假如这笔交易需要3,000Gas,但是你设置Gas Limit是2,000Gas,那这笔交易就会因为 Out of Gas 失败。就好像你开车从深圳到广州需要3,000L汽油,而你只准备了2,000L汽油,汽油不够,你当然不能到达目的地了。

57a2b8d07e76620d074bfafb9d78cbc6.webp

Max Priority >Max,无法成交,不会被发送到区块链上。

7423601662a1fd32d0dfd3433d7d1751.webp

5. 地址页

11446e753dba506cb41495dd59bdc41a.webp

6. 合约地址页(代币页)

9b9f75d537f86d948a4fb2b5241f5fd0.webp

7. 手续费Gas查看

7.1 Ethereum官方

efc95f72777319e1b7fe7c593bacf9e2.webp

7.2 Blocknative

fc7b02387066c2b11179df06ad2034fb.webp

Gas Limit 实际用掉的叫做 Gas Used(Gas Limit 设置后实际使用的值,多了可以退,少了不能补),没用到的会自动退回到钱包里。理论上,可以设置一个特别大的数值就可以了,但是不要这么干,因为有些合约不靠谱(有bug),里面很多循环、重复语句,会不断消耗你的Gas。Gas Limit是限制Gas的上限,最多就只能消耗这么多了,再多宁愿让它失败。设置过低,交易会失败;设置过高,有消耗过多Gas的风险,恶意程序可能把你的Gas全消耗掉。所以,Gas Limit 使用默认值就可以了。

8. 常见问题

8.1 Nonce值-加速或取消交易

每一笔交易都有一个Nonce值,目的是为了防止双花,Nonce只能逐步往上增加,每笔交易+1。同一个地址发出2笔nonce值一样的交易,矿池会选择矿工费高的那一笔交易,另一笔交易就会被撤销。

      
        账户当前Nonce=10,余额是10ETH
      
      
        
          
1. 先向A发起转账5ETH,Nonce=11。然后立即向B发起转账8ETH,显示余额不足。
2. 先向A发起转账5ETH,Nonce=11。然后立即向B发起转账3ETH,Nonce=12。


账户当前Nonce=10
1. 如果向A发起转账,Nonce设置为9,交易会被拒绝。
2. 如果向A发起转账,Nonce设置为12,该交易不会上链。交易会在队列里,等待Nonce为11的上链。

加速交易:

Nonce为10的交易一直 Pending状态,只需要再发起一笔交易,将Nonce设置为10,调整好Gas Price 就可以完成加速。

取消交易:

Nonce为10的交易一直 Pending状态,再发起一笔交易,将Nonce设置为10,发送0个ETH给自己就可以取消交易,但该付的Gas fee不能少。

8.2 修改Gas Limit导致失败的例子

虽然重新学习了一遍Gas的设置,但是还是不知道为什么以下2笔交易会失败,有兴趣的可以帮我看看,我们讨论讨论呀。我整理了一份Excel:

https://docs.google.com/spreadsheets/d/1ufwXLrS-y9TBn3gHp1aNbr8VgWkDbKSC9l7vEP0geyU/edit#gid=0Google Docs

f11a91e9fa3c8ea26ffde779167c90b7.webp

失败的两笔交易:

https://etherscan.io/tx/0x26889b1a0c628d51a7a0472751801baf70d8b1c4b352c9b96116764bdcd6b25d

https://etherscan.io/tx/0x05519d941d781d9fda6b7d05b1525a1aff0f73ba06a59666ead09de11f668167

第三笔成功的交易:

https://etherscan.io/tx/0x0998938e0c854bfcada8ab4e9d9e1a129809a3a336e16b651766e2d9cf09a8b2

3f0ee04ac4f0c7ce1ce01afdb7bcc8f7.webp

这是当时的截图,我修改了「燃料限制」,但是这个没超过实际使用量。

8.3 交易的时候,可以修改哪些值?


Gas 单价是波动的,即Base fee,当前区块交易笔数过多的时候,下一个区块的Base fee增加12.5%。Gas Limit消耗的量是固定的,比如说你开车从深圳到广州,需要消耗20L汽油是固定的,但是这20L汽油的价格是不固定的,你昨天加油可能是8元/L,今天加油可能是9元/L。

我们一般调整的是 Gas Price,即给矿工 的小费 or 最高收费。

      
        上链成本 = Base Fee + Priority Fee
      
      
        Priority Fee = Min(Max Priority Fee, Max Fee - Base Fee)
      
      
        
          
Max Fee = (2 * Base Fee) + Max Priority Fee

00d75baaf336553791a187fba230e791.webp

8.4 刚写完文章就又踩坑(才出狼口,有入虎穴)

好蠢,写这篇文章的时候,因为需要截图,结果又发起了一笔交易,10u交易手续费没了,资金还要转回来,应该是20u左右手续费。

Metamask钱包发送(转账)是有2个页面来操作的,输入金额后下一个页面时修改Gas和确认页面;而「交换」只有一个页面,点击确认就上链了。属于粗心犯的错,慢一点应该不会出问题!!

6f2010dc9661f54d2cac91837cb82dd0.webp001fbebe8c80849f17f1e8709255ce1f.webp67f2a5fb7b2a3b2d76cb1fdcdf18728e.webp5a807fa88012e907d477f01eb57503a1.webp

9. 参考引用

Gas 和费用 | ethereum.org

从0到1学习Etherscan(上)|怎么查看区块详情和交易详情?#etherscan #ethereum #区块浏览器浏览器

从0到1学习Etherscan(下)|如何使用Etherscan?交易详情怎么看?区块确认是什么意思?#etherscan #web3 #区块链

2023年Metamask如何设置最高优先费用和最高收费?Priority Fee怎么计算?EIP-1559后设置多少Gas Fee比较好?Mint热门NFT,Gas War如何加速上链(第400期)

「第318期」「比特币入门系列」第14期,如何使用以太坊Etherscan区块链浏览器,查看转账和Uniswap等Dapp智能合约交互信息?如何在Metamask里设置Gas Limit和Price?

加速、取消交易,修改nonce值

以太坊ETH拥堵,一直是Pending状态转账慢,如何增加Gas Fee取消或者加速?如何在Metamask钱包里设置Nonce值将交易撤销或者添加手续费提速?(第205期)

教程:以太坊智能合约(3) | 交易费Gas是如何计算-【原创智能合约solidity教程】最新最全持续新增及更新课程内容Y站唯一官方


浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报