织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

以太坊转账打包顺序由什么决定?了解随机数 Nonce

时间:2020-06-10 18:22来源:未知 作者:admin 点击:
以太坊地址每发送一笔交易,交易的随机数 nonce 就会增加 1,nonce 值高的交易要等待 nonce 值低的交易先完成。 原文标题:《决定转账打包顺序的「神秘」值:Nonce》 撰文:Daisy 在《儒林

  以太坊地址每发送一笔交易,交易的随机数 nonce 就会增加 1,nonce 值高的交易要等待 nonce 值低的交易先完成。

  原文标题:《决定转账打包顺序的「神秘」值:Nonce》

  撰文:Daisy

  在《儒林外史》里有一个吝啬鬼叫严监生,临终前躺在床上,竖起两根指头来。家里的侄子,奶妈就围着他问,是不是有什么心愿未了,却都不解其意。最后,严监生的老婆赵氏猜到了原因,屋子里的灯点着两茎灯草,严监生觉得太浪费了,才迟迟不肯咽气。当赵氏把灯里的灯草挑掉了一茎,严监生这才两腿一蹬,双眼一闭,安心去投胎了。

  假设在多年轮回后,严监生在 2017 年成了一个加密货币投资者。这天他用 imToken 1.0 给赵氏转账了 10 个 USDT,却仍不改其吝啬的本质,把手续费设定得很低,可这笔交易过了很久也没有显示转账成功。

  严监生有些焦急,又给赵氏发去了一笔 10 个 USDT 的转账,这次手续费多给了一些,很快便成功了,而原先发起的第一笔交易则显示失败。

  Emmmm~ 这是为什么呢?

  最近以太坊网络转账的矿工费越来越贵,原因我们在 《为什么矿工费这么贵?》 解释过了,那么面对昂贵的矿工费,多数人都会选择把矿工费调低一些,毕竟节俭一点没啥不好的。

  可是当我们使用 imToken 1.0 进行转账,把手续费调得很低时就可能会出现上面这种情况:第一笔交易迟迟不被打包,再次发起第二笔交易成功后,第一笔交易则会显示失败。

  究其原因,是一个叫 nonce 的值造成的。

  在以太坊上发生的每笔交易都有一个值叫 nonce,这个值用于计算一个以太坊地址中发出的交易数量。一个以太坊地址里的所有转账会按照你发起转账的时间,给每一笔交易排序,从 0 开始计数。地址每发送一笔交易,交易的随机数 nonce 就会增加 1,而转入这个地址的交易则不会改变 nonce 值。

  举个例子:

  0x336d3e7fdFB677Bd1c7324919556EB6E98F6eDEF

  这个地址中截止撰稿一共向外发起了 4 笔向外转账和 2 笔进账收款,其中红色框框标出的这两笔交易不纳入该地址的 nonce 值计算,其余 4 笔向外转账交易的 nonce 值从下往上分别为 0,1,2,3。

  以太坊区块链对 nonce 做了这样三条规定:

  矿工需要按照 nonce 值从小到大去打包转账,所以在 nonce 为 0 的交易未被矿工打包前,nonce 为 1,2,3···的交易无论矿工费给的多高,都必须一直排队等着(就好比早高峰堵车的时候我们不能加塞,无论是拉斯莱斯还是奇瑞,都只能老老实实排队)。 (责任编辑:admin1)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容