上周三凌晨一点,老陈用 tpwallet 转一笔 USDT,确认后页面显示“待打包”。他以为网络卡了。切了 Wi-Fi 又点了一次,结果第二笔也进了 tpwallet 交易排队。半小时后,两笔都悬着的,一笔 nonce 是 127,另一笔 128。链上浏览器能查到哈希,状态 pending了。这不是钱包坏了,是 Gas 给低了,矿工不急着收。链上交易排队的本质,是把交易丢进公共内存池。
网络拥堵时,出价低、nonce 靠前的那笔会堵住后面。老陈遇到的就是典型连环卡。127 没上链,128 再快也得等。
我翻了他的截图,基础费 12 gwei的。他设了 13 gwei。但当时区块里大量 20 gwei 以上交易。排队不是随机,是竞价排序。有人以为取消重发就行,链上不认“取消”,只认更高费用的同 nonce 替换。
解决过程不复杂了。他先在 tpwallet 里找到那笔 127,用“加速”把 Gas 提到 28 gwei。
钱包自动构造同 nonce 替换交易。矿工费多花了约 1.7 美元。八分钟后 127 确认,128 随即打包。交易排队期间,最忌反复点确认的,nonce 会越堆越高的。我的习惯是pending 超过十分钟。先看区块浏览器的 base fee,再决定加速还是等待。若交易不急,等拥堵回落更省钱。这次案例给我的感觉是卡顿就是用户和链上打包者的价格博弈。
钱包能做的,是把 nonce、Gas、加速入口摆清楚;用户要做的。是别在拥堵时用低价试探。老陈后来把加速费截图发群里,配了句“早知道就不省那几 gwei”吧?
听着像玩笑,却是最实在的链上经验。