内存池
什么是内存池?
内存池本质上是一种加密货币节点的机制,用于存储未确认交易的信息,充当尚未包含在区块中的交易的等待室。
事实上,要向矿工提交交易,节点必须将其转发给彼此,直到它传播到整个网络。该内存池是节点所有待处理交易的保存区域。
内存池是节点所看到的所有未确认交易的集合,这使其能够决定是否中继新交易。
有多少个节点就有多少个内存池。这是因为并非所有节点同时接收相同的交易,因此某些节点在给定时间比其他节点存储更多信息。每个人都可以使用他们选择的硬件运行自己的节点,因此所有节点都有不同的容量来存储未确认的交易。这样的结果呢?每个节点都有自己的待处理交易的再现,这解释了内存池大小的多样性以及在不同来源中发现的交易计数。
当节点收到新的有效块时,它最终会从其内存池中删除该块中包含的所有交易,以及具有冲突输入的交易。这可能会导致内存池大小急剧下降。
运行节点没有经济激励,而且专用于该节点的硬件通常是有限的。节点的内存池通常会耗尽其 RAM,当这种情况发生时,该节点将崩溃并在整个旧版本的比特币中以空内存池重新启动。然而,截至最近的更新,如果mempool大小太接近RAM容量,节点会设置最低费用阈值,在这里,每kB费用低于该阈值的交易可以立即从mempool中删除,并且仅允许每 kB 费用足够大的新交易。