比特币节点的 REST 接口:-rest 打开了什么,边界在哪 图 1
比特币节点的 REST 接口:-rest 打开了什么,边界在哪 · 图 1

它是什么

比特币核心除了 JSON-RPC,还挂着一个更朴素的查询入口:REST 接口。一条 HTTP GET 请求加一个路径,就能换回交易、区块头、链信息等数据,不需要构造 JSON 报文、不需要管 cookie 文件。它在发行版里默认是关着的——按当前源码(master 分支 src/init.cpp)里的常量定义,DEFAULT_REST_ENABLE 为 false,想用它必须在启动参数加 -rest 或写入配置文件 rest=1,属于「你要才给开」的功能(本文结论核验时间 2026 年 8 月,以对应版本源码为准)。

有哪些端点

路由表写在源码 src/rest.cpp 里,逐条列出来:/rest/tx/ 查交易,/rest/block//rest/block/notxdetails/ 查区块,/rest/blockpart/ 查部分区块,/rest/blockfilter//rest/blockfilterheaders/ 查区块过滤器,/rest/chaininfo 查链状态,/rest/mempool/infocontents 查内存池,/rest/headers/ 批量查区块头,/rest/getutxos 查指定输出的未花费状态,/rest/deploymentinfo/ 查软分叉部署,/rest/blockhashbyheight/ 按高度反查哈希,/rest/spenttxouts/ 查某交易花掉的输出。路径末尾的后缀决定编码:.json 返回人类可读结构,.hex.bin 返回原始序列化字节。举个例子:curl http://127.0.0.1:8332/rest/tx/交易哈希.json 就能取回一笔交易的完整记录。

它和 RPC 的分工

两个接口共用同一个监听地址与端口(默认主网 127.0.0.1:8332),但角色完全不同。RPC 是全能控制台:能查、能花、能改节点配置,所以有 cookie 鉴权这道门。REST 只是从链上世界开出的只读窗户:内容全部是节点本来就会广播的公开账本数据,不提供任何写操作,也不触发钱包。按源码行为,REST 路径直接命中路由并返回,不走 RPC 的认证逻辑——这句话的含义是:数据本身公开,但接口本身不设防,谁能连上这个端口,谁就能查。

安全边界与使用纪律

第一,默认绑定在本机回环地址是绝大多数场景的正确状态,写脚本、做健康检查、给小工具供数,本机够用。第二,真要对外提供查询,别直接暴露 8332:加一层你做主访问控制的反向代理或 TLS 隧道,把它当成公开服务设计——因为 chaininfo 会透露你的节点高度与同步状态,mempool/contents 更是一份对隐私敏感的公开快照,带宽消耗也不可忽略。第三,不要在 REST 和 RPC 之间口口相传「一个开了另一个也就开了」:它们是不同的启动开关,检查配置时分别确认。第四,getutxos 这类端点适合轻客户端式验证,但查询记录在网络层对端可见,敏感查询仍建议走自己的回环。

什么时候值得开

排障时最见价值:怀疑某笔交易没进块,一行 curl 对比 RPC 和区块浏览器的返回;写监控脚本时,REST 的 URL 形态比 JSON-RPC 报文好维护得多;学比特币时,它是把「区块、交易、UTXO」这些概念变成肉眼可见结构的最快玩具。

一个最小上手清单

按顺序走一遍就能建立手感。第一步确认节点在跑并开着开关:bitcoind -conf=... -rest 或配置文件里 rest=1,重启后用浏览器或 curl 访问 http://127.0.0.1:8332/rest/chaininfo.json,能看到链高度即成功。第二步拿一笔任意已知交易的哈希查 /rest/tx/哈希.json,对照区块浏览器逐字段读一遍,理解 vsize、权重与 fee 的关系。第三步玩 /rest/blockhashbyheight/ 加某个高度的 .json,再拿返回的哈希去查 /rest/block/哈希.json,把区块头和交易列表的嵌套结构看个明白。第四步体验后缀差异:把同一请求的 .json 换成 .hex,感受序列化字节的原始形态。第五步(可选)读一遍源码 src/rest.cpp 的路由表,你会发现整个接口二十来个端点全部一览无余——这种「翻源码即文档」的确定性,正是拿核心学协议的最大好处。

风险与责任再强调一次:REST 提供的是你节点所见的公开账本视图,开启它不会让你多花一分钱,但把它暴露到公网而不加访问控制,等于把节点运营信息挂在门牌上,所有对外服务都应以「这台机器可能被人扫描」为设计前提。

风险提示:本文描述以核验时的源码为准,版本差异请以对应发行说明核对;对外暴露任何节点接口前先做访问控制设计,本文不构成投资建议。