在比特币世界里,交易并不是一提交就秒上链,而是先挤进一个叫 Mempool 的等候区排队。本文带你认识这个交易候车室,再介绍如何通过 QuickNode 自建节点,用 Bitcoin RPC 去翻看池子里的交易信息,比如手续费高低、体积大小、等待时长,甚至谁在插队依赖谁。最后还会讲到怎样把原始交易数据捞出来细看。总体思路不复杂,只是告诉你:区块链上,连交易也要先拿号。

概述
比特币是区块链技术的鼻祖。随着比特币的出现,区块链和去中心化的新时代开始了。比特币使每个人都可以进行他们今天所享受的 P2P 交易;本指南将教你如何从比特币内存池中获取这些交易。
前提条件:
终端/cmd (CLI)。
比特币节点。
热爱去中心化。
什么是比特币内存池?
在比特币网络上发送的交易不会直接添加到区块链中。所有有效的交易都必须进入一个等待区,然后才能被一个区块接受。这个等待区被称为内存池 (mempool)。如果内存池的大小很大,则表明网络上的流量很高,这会导致更长的交易确认时间和更高的交易费用。
注意:在标准实践中,Bitcoin 是协议/网络,而 bitcoin 或 BTC 是货币。
比特币交易费用以每笔交易的字节数支付的 satoshi 数量来衡量。Satoshi 是比特币网络原生货币比特币的最小单位,其中 1 比特币 = 1 亿 satoshis。矿工优先考虑内存池中交易费用高的交易。但是自从 SegWit 升级 以来,比特币交易发生了一些变化。它引入了一种新的交易,称为 SegWit 交易,以增加每个比特币区块的交易数量。它解决了两个问题:1. 它增加了比特币每秒的交易数量,2. 它解决了Transaction Malleability问题。
在 SegWit 之前,区块或交易以字节为单位衡量,每个区块限制为 1 MB(兆字节)或 1 百万字节。在 SegWit 之后,交易和区块以 权重单位 衡量;这些权重单位用于衡量比特币数据并比较交易。
接下来要介绍的概念是 vByte。一个 vByte 相当于四个权重单位。Legacy 交易的一个字节的数据占用 1 vByte(4 个权重单位)。而对于 SegWit 交易,一个字节的数据占用 1/4 vByte(1 个权重单位)。这种折扣允许区块中填充 4 倍以上的交易。当前的比特币区块大小限制为 1 vMegabyte/ 1 百万 vByte/ 4 百万权重单位。大多数钱包以 satoshis/vByte 为单位计算交易费用,即为使用的每个 vByte 数据支付的费用。
比特币内存池分析用例:
内存池分析帮助我们了解网络上的拥塞/流量,最终帮助我们计算交易费用。
现在让我们访问内存池并从池中获取一些交易数据。
设置 QuickNode 比特币节点
为了我们今天的目的,我们需要一个比特币节点来访问区块链数据。考虑到比特币上的大量数据,启动我们自己的节点将非常昂贵且耗时。我们将注册一个免费的 QuickNode 帐户 here,在那里我们可以轻松创建比特币节点。

复制并保存你的节点的 HTTPS URL,因为它稍后会用到。
如何访问比特币内存池/如何从比特币获取待处理交易
我们将使用 Bitcoin RPC methods 来获取内存池数据,特别是 getrawmempool 方法。打开终端/cmd 并复制粘贴以下内容:
curl --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getrawmempool", "params": [true]}' -H 'content-type: application/json' <QUICKNODE_BITCOIN_URL>
将 QUICKNODE_BITCOIN_URL 替换为你的比特币节点的 HTTPS URL,这是我们在上一步中获得的。上面是向我们的节点发出的一个 cURL 请求,以及 getrawmempool 方法。
输出应该类似于这样。

现在让我们了解一下输出主体。上面的方法给出了当前在内存池中的待处理交易的列表。我们将取出一个交易并检查每个字段。
{
"result": {
"2d1228abf06836b1173936061fec0384e82e3b684d7950a27f06a06f587400d3": {
"fees": {
"base": 0.00111999,
"modified": 0.00111999,
"ancestor": 0.00111999,
"descendant": 0.00111999
},
"size": 90826,
"fee": 0.00111999,
"modifiedfee": 0.00111999,
"time": 1629052793,
"height": 695936,
"descendantcount": 1,
"descendantsize": 90826,
"descendantfees": 111999,
"ancestorcount": 1,
"ancestorsize": 90826,
"ancestorfees": 111999,
"wtxid": "b3b49bb3dcae483d579710a2e1f9c7ed585ab35e2a8cb941ff8cb27ea8adec20",
"depends": [],
"spentby": [],
"bip125-replaceable": false
}
}
}
对上述 JSON 输出的解释:
第 3 行:这是交易 ID,区块链上的交易通过该 ID 来识别。
第 4-9 行:交易费用细目。
第 10 行:根据 BIP 141 的交易大小。
第 11 行:以 BTC(比特币)计的交易费用。
第 12 行:用于挖矿优先级的具有费用增量的交易费用。
第 13 行:自 1970 年 1 月 1 日 GMT 以来交易进入池中的时间(以秒为单位)。
第 14 行:交易进入池中时区块链的高度(最新区块)。
第 15 行:内存池中 后代交易 的数量,包括此交易。
第 16 行:内存池中所有后代交易的大小。
第 17 行:内存池中所有后代交易的修改费用。
第 18 行:内存池中 祖先交易 的数量,包括此交易。
第 19 行:内存池中所有祖先交易的大小。
第 20 行:内存池中所有祖先交易的修改费用。
第 21 行:具有 见证数据 的交易 ID。
第 22 行:如果未确认的交易用作此交易的输入,则必须在此处输入。
第 23 行:如果另一个未确认的交易正在使用来自此交易的数据,则必须在此处输入。
第 24 行:一个布尔值,显示交易是否可以由于 BIP 125 而被替换。
现在要获取实际的交易数据,我们将不得不使用另一种方法 getrawtransaction,它将返回有关特定交易的信息。在你的终端/cmd 中复制粘贴以下内容:
curl --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getrawtransaction", "params": ["2d1228abf06836b1173936061fec0384e82e3b684d7950a27f06a06f587400d3", true]}' -H 'content-type: application/json' <QUICKNODE_BITCOIN_URL>
将 QUICKNODE_BITCOIN_URL 替换为你的比特币节点的 HTTPS URL,这是我们在上一步中获得的。上面是向我们的节点发出的一个 cURL 请求,以及 getrawtransaction 方法。为了获得这个,我们将 ping 我们的节点来解析该方法。我们必须为此方法传递两个参数。第一个是要查询的交易的交易 ID。第二个是一个布尔值,如果设置为 false,则返回一个字符串;否则,它返回一个 JSON 对象。
我们将第二个参数设置为“true”,因此输出应如下所示。

对粘贴在 这里 的交易对象的解释:
第 3 行:区块链上的交易通过其标识的交易 ID(与提供的相同)。
第 4 行:见证交易的 txid 中的交易哈希。
第 5 行:根据 BIP 141 的交易大小。
第 6 行:见证交易的大小中的交易的虚拟大小。
第 7 行:交易的版本号,当前为 1 或 2。如果为 2,则表示 BIP 68 适用。
第 8 行:锁定时间指定为区块号。如果提到了锁定时间,则只有在通过锁定时间区块后,该交易才能添加到区块中。例如,如果将锁定时间指定为 30,则矿工只能在挖掘出区块号 30 之后才能提取该交易。
第 9-20 行:Vin 显示了内存池中此特定交易用作输入的交易列表。
第 21-33 行:Vout 显示了内存池中使用此特定交易作为输入的交易的列表。
第 34 行:区块哈希,此处为空,因为交易尚未确认。
第 35 行:交易已通过的确认数。
第 36 行:自 1970 年 1 月 1 日 GMT 以来交易进入池中的时间(以秒为单位)。
第 37 行:挖掘出交易所在的区块的时间,此处为空,因为交易正在等待处理。
第 38 行:'txid' 的序列化、十六进制编码数据
通过分析上面的数据,我们可以了解比特币交易的来龙去脉。比特币交易非常复杂,但是 getrawtransaction 方法会给出原始的交易信息,这些信息易于查看和理解。
结论
祝贺你掌握了比特币内存池。今天在本指南中,我们学习了什么是比特币内存池,比特币内存池的用途,如何访问比特币内存池/如何获取比特币待处理交易以及如何获取比特币待处理交易数据。

交易所
交易所排行榜
24小时成交排行榜
人气排行榜
交易所比特币余额
交易所资产透明度证明
资金费率
资金费率热力图
爆仓数据
清算最大痛点
多空比
大户多空比
币安/欧易/火币大户多空比
Bitfinex杠杆多空比
ETF追踪
比特币持币公司
加密资产反转
以太坊储备
HyperLiquid钱包分析
Hyperliquid鲸鱼监控
索拉纳ETF
大额转账
链上异动
比特币回报率
稳定币市值
期权分析
新闻
文章
财经日历
专题
钱包
合约计算器
账号安全
资讯收藏
自选币种
我的关注