ethereum的txpool

参考:
1.https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction
2.https://github.com/ethereum/go-ethereum/wiki/Management-APIs#txpool
3.https://mp.weixin.qq.com/s/4f5bv3-Bclc2izZ67o8DDw 以太坊如何清除已发出未打包的交易
https://mp.weixin.qq.com/s?__biz=MzI0NDAzMzIyNQ==&mid=2654065324&idx=1&sn=58ff35023fa61aea3ae2782ebac06fdc&chksm=f2a6810ac5d1081c1dc2cb2e6e1f1a5d697fe936861f3c1aebb69b84d43957b8afe4f055ebc0&scene=21#wechat_redirect
https://mp.weixin.qq.com/s/MKDrq4GCTeSa07TB72jWJQ
4.https://blog.csdn.net/wo541075754/article/details/79812535 以太坊交易池(txpool)的分析

txpool

> txpool.content
{
  pending: {},
  queued: {}
}

txpool中由两部分构成pending和queued组成。那么他们两者有什么分别呢。最明显的是一个为待打包状态,一个为队列中

处于队列中的交易是无法被打包的,被放入队列的原因主要是因为交易的nonce错乱

txpool的配置

--txpool.nolocals            为本地提交交易禁用价格豁免
--txpool.journal value       本地交易的磁盘日志:用于节点重启 (默认: "transactions.rlp")
--txpool.rejournal value     重新生成本地交易日志的时间间隔 (默认: 1小时)
--txpool.pricelimit value    加入交易池的最小的gas价格限制(默认: 1)
--txpool.pricebump value     价格波动百分比(相对之前已有交易) (默认: 10)
--txpool.accountslots value  每个帐户保证可执行的最少交易槽数量  (默认: 16)
--txpool.globalslots value   所有帐户可执行的最大交易槽数量 (默认: 4096)
--txpool.accountqueue value  每个帐户允许的最多非可执行交易槽数量 (默认: 64)
--txpool.globalqueue value   所有帐户非可执行交易最大槽数量  (默认: 1024)
--txpool.lifetime value      非可执行交易最大入队时间(默认: 3小时)

sendTransaction

调用sendTransaction时,如果不传入nonce值,那么geth节点会默认计算当前地址已经发起了的交易中最大的nonce值为多少,然后将其+1,然后将此交易放置在pending中,等待节点打包。

如果传入的nonce值过大,在进入txpool中检查到它之前的nonce并没有使用过,那么此笔交易不会发送到pending中,而且放置在queued中。只有当前面的nonce补齐之后,才会进入到pending中

nonce规则

为了防止交易重播,ETH(ETC)节点要求每笔交易必须有一个nonce数值。每一个账户从同一个节点发起交易时,这个nonce值从0开始计数,发送一笔nonce对应加1。当前面的nonce处理完成之后才会处理后面的nonce。注意这里的前提条件是相同的地址在相同的节点发送交易。
以下是nonce使用的几条规则:
● 当nonce太小(小于之前已经有交易使用的nonce值),交易会被直接拒绝。
● 当nonce太大,交易会一直处于队列之中,这也就是导致我们上面描述的问题的原因;
● 当发送一个比较大的nonce值,然后补齐开始nonce到那个值之间的nonce,那么交易依旧可以被执行。
● 当交易处于queue中时停止geth客户端,那么交易queue中的交易会被清除掉

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,858评论 2 45
  • 以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译:巨蟹 、少平 译者注:中文读者可以到以太坊爱...
    车圣阅读 3,923评论 1 7
  • 参加写作班已有二十天了,无论文章写的好坏与否,立意如何,修辞方法美或不美,质量是否上乘。这些且先不管,至少每一篇也...
    梅语轩阅读 347评论 0 2
  • 愜兮兮,忧兮兮, 妓舞清影我举杯, 轻纱敛容曼妙姿, 月下无声唯丝竹, 怀抱莺燕沉丛间, 朦迷乱眼无所思。
    顾熙卿阅读 207评论 0 0
  • 自从看完那58集的电视连续剧《三生三世十里桃花》后,便深深喜欢上了这部大剧,我一向爱看神话片,以前也从未追剧过,现...
    花蝴蝶_f623阅读 650评论 0 0

友情链接更多精彩内容