续上篇:一文讲清楚以太坊的gas,gasPrice,gasLimit
我们今天来讲讲以太坊的nonce。做过钱包开发的同学都应该知道,nonce是一个非常关键的参数。对于一般用户来说,各种钱包已经帮我们解决掉这个问题,所以不用怎么关注,但在一些特殊情况下,比如有一笔转账被pending住,但又着急转账,这个时候要是对nonce有足够的认识,就可以很轻松解决。所以,我们有必要专门讲一讲nonce。
nonce的意义
遵循上文讲gas的原则,我们追寻nonce的T-1层原理,并且追根溯源,先看看比特币中的nonce。
比特币中关于nonce的论述,在区块链领域必读书目《精通比特币》中第十章 挖矿和共识有非常详细的论述。简单来说,矿工在挖矿的过程中,为了算出符合要求的hash值(前面N个都是0, N取决于难度系数),不断地替换nonce,来做hash运算。所以,nonce主要用于挖矿。
以太坊的共识算法目前也采用POW,肯定有类似的机制。但在以太坊中,我们提及nonce,更多是说的交易的一个参数。我们看一个标准的以太坊交易参数:
nonce是一个可选参数。可以覆盖pending交易。但nonce在交易中存在意义是什么呢?一句话:防止双花&#x