bitcoin-memorypool源码分析

本文深入解析了bitcoin内存池(ctxmempool)的实现,包括ctxmempoolentry、ctxmempool的结构,特别是mapTx的数据组织方式。介绍了bip68和bip125的交易规则,以及交易如何根据手续费率和时间进行排序。当交易被添加或从内存池中移除时,如何维护相关交易的状态,确保内存池的正确性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

涉及的bip

  • bip68 交易输出会锁定一段时间不允许消费
  • bip125 如果mempool已经有相同交易输入的交易,具备更高手续费(小费)的新加入交易会替换掉旧的交易。

ctxmempoolentry

存储一个交易的相关信息和其他在mempool中与这个交易有关的祖先、后裔交易的数据。
每当有新的交易添加到mempool,都需要更新这个新交易的所有祖先交易的相关状态。

ctxmempool

存储那些对于the-current-best-chain有效且准备存储到下一个区块的交易。
网络上被见到(seen on the network)的交易(包括在本地节点创建的交易)都会添加到该mempool。除了:

  • 交易手续费不满足最低要求
  • mempool中已有相同交易输入的交易
  • 非标准交易

ctxmempool::mapTx 和 ctxmempoolentry

mapTx是一个 boost::multi_index,并会以四个标准去整理mempool(中的交易):

  • 交易hash
  • 后裔交易的税率,max(feerate of tx,feerate of tx with all descendants(in-mempool transactions that depend on this one))
  • 在mempool中的时间
  • 祖先交易的税率,min(feerate of tx, feerate of tx with all unconfirmed ancestors(in-mempool transactions that a given transaction depends
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值