Bitcoin Mempool
来源:互联网 发布:求素数高级算法 编辑:程序博客网 时间:2024/05/22 17:03
Bitcoin Mempool
Mempool 的基本概念:
- mempool的功能: 节点存储待处理交易的交易池。
- 一个交易广播到交易网络后,被大部分节点验证通过后;会存入交易池中,等待矿工将它打包到下一个块中;
- 每个节点由于硬件设施不同,导致各自的交易池互不相同:
- 1 mempool size 不同;
- 2 mempool element Number 不同
- 节点如何避免由于mempool 过大造成的系统崩溃:
- 1 当节点上的mempool过大时,节点会调整交易费的阈值,将交易费低于该值的交易丢弃,节省空间;
- 2 只有大于该阈值的交易才会被放入交易池;
- 3 当一个节点收到一个新的有效的块,节点会从mempool中移除所有包含在该块上的交易。这将导致mempool的大小急剧降低;
- mempool 在 BIP35 中;并且帮助SPV钱包记录交易;
- 基本上 mempool是比特币网络的瓶颈。更快的把交易从mempool清除放到区块链,可以让用户获取更好的体验。如果矿工挖掘新交易块的速度小于新交易到达mempool的速度,将会产生交易拥堵;并且交易的确认时间将延长(延长的时间取决于: 该交易的大小和交易费)
- 当一个交易的交易费过低时,它将会是低优先级的交易,会花费更长的时间才能得到确认。
- 对于每一个输入,在主分支和交易池中寻找引用的输出交易。如果输出交易缺少任何一个输入,该交易将成为一个孤立的交易。如果与其匹配的交易还没有出现在池中,那么将被加入到孤立交易池中。
- 对于每一个输入,如果引用的输出交易是一个coinbase输出,该输入必须至少获得COINBASE_MATURITY (100)个确认。
- 每个比特币网络上的有效交易将被自动的添加到交易池,在这里,它将等待来自矿工的确认。每当一个矿工将相关交易放入下一个区块,该交易将自动收到第一次确认。
- 每个节点有自己的mempool,当一个新的有效区块被广播值网络上,每个节点将自动从mempool中移除这些被确认的交易。因此矿工拿起哪笔交易是具有相当的挑战性(即重要);
- 矿工将根据交易费优先选择那些在交易池中未确认的交易。这些交易费分配矿工,用作他们在比特币网络上解决下一个块的努力的奖金。高交易费的人相对于低交易费能更快的得到确认。
- Bitcoin Mempool是一个大的收集网络交易等待确认的地方。它包含大量的数据,有大量的待处理交易被保存直到出现积压(即数据量过大)。大多数情况下,mempool中保存相对较少的未确认的交易。不幸的是,积压可能无处不在。这使得mempool成为比特币生态系统的一个重要瓶颈。
- 更快的交易是优先被考虑的,然而大量的人更喜欢支付很小的费用。使得出新块的费率因为一些原因被降低,较低的交易费意味着更大的延迟。当进入的交易比矿工处理的速度更快时,经历mempool拥堵很正常。
- 确认何时以及mempool是否可能造成交易确认延迟并不困难。只要mempool的大小保持在1M以下,就不会产生延迟。任何大小的增加都将表明平均交易确认时间将花费x区块在网络上。例如:一个20M的mempool大小意味着较低的交易费用,并将花费平均20个块去接受他们的第一次网络确认。
- 目前,只有一种比特币用户可以绕过mempool问题有效的方式。更高的交易费不是受欢迎的选择,然而这是最好的避免mempool拥堵的方式。除非区块比当前包含更多的交易,否则mempool的问题将会一直发生。此外,人们用0交易费或相当低的交易费充斥网络将会导致更严重的mempool拥堵问题。更高的交易费一直是最高优先级的,这点是明确的。
参考资料
- https://99bitcoins.com/what-is-bitcoin-mempool/#prettyPhoto
- https://themerkle.com/what-is-the-bitcoin-mempool/
阅读全文
0 0
- Bitcoin Mempool
- bitcoin
- Bitcoin
- Bitcoin
- 内存池(MemPool)
- 图解dpdk mempool 对象
- kernel中的mempool机制
- 6. Mempool Library
- Bitcoin Period
- BitCoin Tutorial
- bitcoin.conf
- 关于bitcoin
- bitcoin testnet
- BitCoin - BlockChain
- Bitcoin 学习
- BitCoin APIs
- 对mempool 的看法, 是否有必要实现 mempool
- 内存池(MemPool)技术详解
- .Collection和Collections的区别
- PhantomJS API 第二篇
- 彻底理解ThreadLocal
- jz2440开发板NFS配置
- 数组中的逆序对
- Bitcoin Mempool
- 不能错过的excel的几个操作技巧,否则你就后悔一生!
- mysql datetime 计算相隔时间
- zabbix3.4.1 通过orabbix监控oracle数据库
- java test2
- 安装arm-linux-gcc-4.4.3交叉编译器的方法
- 解决probe无法执行
- Android Studio gradle路径(Windows)
- MariaDB设置数据库默认编码