Bitcoin Mempool

来源:互联网 发布:求素数高级算法 编辑:程序博客网 时间:2024/05/22 17:03

Bitcoin Mempool

Mempool 的基本概念:

  1. mempool的功能: 节点存储待处理交易的交易池。
  2. 一个交易广播到交易网络后,被大部分节点验证通过后;会存入交易池中,等待矿工将它打包到下一个块中;
  3. 每个节点由于硬件设施不同,导致各自的交易池互不相同:
    • 1 mempool size 不同;
    • 2 mempool element Number 不同
  4. 节点如何避免由于mempool 过大造成的系统崩溃:
    • 1 当节点上的mempool过大时,节点会调整交易费的阈值,将交易费低于该值的交易丢弃,节省空间;
    • 2 只有大于该阈值的交易才会被放入交易池;
    • 3 当一个节点收到一个新的有效的块,节点会从mempool中移除所有包含在该块上的交易。这将导致mempool的大小急剧降低;
  5. mempool 在 BIP35 中;并且帮助SPV钱包记录交易;
  6. 基本上 mempool是比特币网络的瓶颈。更快的把交易从mempool清除放到区块链,可以让用户获取更好的体验。如果矿工挖掘新交易块的速度小于新交易到达mempool的速度,将会产生交易拥堵;并且交易的确认时间将延长(延长的时间取决于: 该交易的大小和交易费)
  7. 当一个交易的交易费过低时,它将会是低优先级的交易,会花费更长的时间才能得到确认。
  8. 对于每一个输入,在主分支和交易池中寻找引用的输出交易。如果输出交易缺少任何一个输入,该交易将成为一个孤立的交易。如果与其匹配的交易还没有出现在池中,那么将被加入到孤立交易池中。
  9. 对于每一个输入,如果引用的输出交易是一个coinbase输出,该输入必须至少获得COINBASE_MATURITY (100)个确认。

  1. 每个比特币网络上的有效交易将被自动的添加到交易池,在这里,它将等待来自矿工的确认。每当一个矿工将相关交易放入下一个区块,该交易将自动收到第一次确认。
  2. 每个节点有自己的mempool,当一个新的有效区块被广播值网络上,每个节点将自动从mempool中移除这些被确认的交易。因此矿工拿起哪笔交易是具有相当的挑战性(即重要);
  3. 矿工将根据交易费优先选择那些在交易池中未确认的交易。这些交易费分配矿工,用作他们在比特币网络上解决下一个块的努力的奖金。高交易费的人相对于低交易费能更快的得到确认。
  4. Bitcoin Mempool是一个大的收集网络交易等待确认的地方。它包含大量的数据,有大量的待处理交易被保存直到出现积压(即数据量过大)。大多数情况下,mempool中保存相对较少的未确认的交易。不幸的是,积压可能无处不在。这使得mempool成为比特币生态系统的一个重要瓶颈。
  5. 更快的交易是优先被考虑的,然而大量的人更喜欢支付很小的费用。使得出新块的费率因为一些原因被降低,较低的交易费意味着更大的延迟。当进入的交易比矿工处理的速度更快时,经历mempool拥堵很正常。
  6. 确认何时以及mempool是否可能造成交易确认延迟并不困难。只要mempool的大小保持在1M以下,就不会产生延迟。任何大小的增加都将表明平均交易确认时间将花费x区块在网络上。例如:一个20M的mempool大小意味着较低的交易费用,并将花费平均20个块去接受他们的第一次网络确认。
  7. 目前,只有一种比特币用户可以绕过mempool问题有效的方式。更高的交易费不是受欢迎的选择,然而这是最好的避免mempool拥堵的方式。除非区块比当前包含更多的交易,否则mempool的问题将会一直发生。此外,人们用0交易费或相当低的交易费充斥网络将会导致更严重的mempool拥堵问题。更高的交易费一直是最高优先级的,这点是明确的。

参考资料

  1. https://99bitcoins.com/what-is-bitcoin-mempool/#prettyPhoto
  2. https://themerkle.com/what-is-the-bitcoin-mempool/
原创粉丝点击