Bitcoin Core v31.0 的 getnewaddress 不现场造钥匙,而是从描述符派生区间发号。本文按源码核对它的密钥池机制、label 标签语义、address_type 覆盖规则,以及锁定钱包与观察钱包下的真实行为。
汇总与「RPC」相关的文章,帮助你系统了解该主题。
Bitcoin Core v31.0 的 getnewaddress 不现场造钥匙,而是从描述符派生区间发号。本文按源码核对它的密钥池机制、label 标签语义、address_type 覆盖规则,以及锁定钱包与观察钱包下的真实行为。
Bitcoin Core v31.0 的 decoderawtransaction 纯本地拆解十六进制交易,不做共识校验也不告诉你能不能花。本文按源码核对 iswitness 参数的猜测风险、txid 与 wtxid 的分野、size、weight、vsize 三本体积账。
Bitcoin Core v31.0 的 getbalance 把余额压成一个数字,参数表里却留着 dummy 化石、弃用的 include watchonly 与 avoid reuse 过滤。本文按源码核对它的口径、与 getbalances 和 listunspent 的分工。
Bitcoin Core v31.0 的 getblockcount 报的是最大工作量且完整验证那条链的高度,快照同步与重组都会让它和直觉对不上。本文按源码核对高度与链尖哈希的语义、成对使用的理由和轮询脚本的替代方案。
Bitcoin Core v31.0 的 abortrescan 只把一个原子标志置位,扫描线程在下一个检查点才真正停下。本文按源码核对返回 true 与 false 的语义、中止后未扫区间的漏账风险,以及三处强制要求先中止的操作。
钱包与网站建立会话时,除了约定「开放哪条链、哪几个账户、哪些方法」,还有两件常被默认拍板的事:RPC 接口以哪个版本文档为准,请求实际路由到哪些节点。编号 211 的草案把这两件事写进授权作用域里的 rpcDocuments 与 rpcEndpoints 两个有序数组,配 assumed、implicit、explicit 三层取值模型与冲突时按数组顺序定优先级的规则。本文拆解语法与安全考量。
Bitcoin Core v31.0 的 RPC 服务端只实现 Basic 认证,凭据默认来自每次启动重新生成的随机 cookie 文件。本文按 httprpc.cpp 与 request.cpp 核对 cookie 校验、rpccookieperms 三档权限、cookie 与 rpcauth 共存关系,以及 JSON-RPC 批量数组在 HTTP 层的 200/204 规则。
Bitcoin Core v31.0 的 generatetodescriptor 把输出描述符直接编译成 coinbase 脚本再产块,省去先备好地址的中间步骤。本文按 v31.0 源码核对它的三个参数、报错路径与 generatetoaddress 的同源关系,并说明为什么它只在 regtest 这类环境有实际用途。
`submitblock` 把一份十六进制区块直接交给本节点验证并转发,实现留在 v31.0 源码 src/rpc/mining.cpp:第二个参数只是 BIP22 兼容占位,返回值有成功空、duplicate、inconclusive 与 BIP22 错误串几档。本文逐档拆语义。
比特币核心的 help 把 RPC 按九类打印成排序目录,hidden 类别不出现在目录里但可用名字直接查帮助,弃用行为另有 deprecatedrpc 开关。本文按 v31 源码拆解三扇门与实操用法。