主页 > imtoken钱包地址 > 比特币节点远程访问

比特币节点远程访问

imtoken钱包地址 2023-04-22 05:37:07

比特币节点远程访问

比特币节点的配置在上一篇文章中有详细介绍。 很多参数的含义可以在上面的解释中找到,也可以使用-help或者-? 查看说明。 这篇文章是关于配置一个运行比特币的服务器(我的环境是 Ubuntu),以及远程访问比特币核心。

通过 Bitcoin Core 提供的 RPC 服务与 Bitcoin Core 进行交互。 在网上用配置比特币远程服务等关键词搜索得到的信息很多都是过时的,因为比特币版本升级迭代比较快。 请注意2022比特币节点数量,本文配置的时间节点为2019-9-1,后续参考本文时请注意时间节点。

在默认状态下,bitcoind(以下简称bitcoind)监听本地环回地址127.0.0.1。 默认监听的官方地址端口为8332

1
2
3

$ netstat -alpn | grep 8332
tcp 0 0 127.0.0.1:8332 0.0.0.0:* LISTEN 18787/bitcoind
tcp6 0 0 ::1:8332 :::* LISTEN 18787/bitcoind

在本地节点上使用bitcoin-cli或者local(同一台机器)访问节点是没有问题的,使用localhost即可(不需要用户名和密码)。 但是不能远程访问。

Linux系统下,配置放在~/.bitcoin/bitcoin.conf。 如果要远程访问,配置参考如下

1
2
3
4
5
6
7

# 1代表开启rpc服务 0代表关闭
server=1
rpcbind=10.0.1.5
rpcallowip=0.0.0.0/0
rpcport=8332
rpcuser=bitcoin
rpcpassword=password

必须注意的是

开启rpc服务后,直接访问bitcoind主机的ip,会看到

JSONRPC 服务器只处理 POST

上面这句话的意思是开启了rpc服务。

如果你使用上面的配置来启动bitcoind,rpc服务将绑定在ip“10.0.1.5”上,端口8332将被使用。 当然,为了授权用户和密码也是必须的。

比特币rpc服务采用白名单模式,必须在rpcallowip配置中指定允许访问的ip,否则rpcbind不会生效。也就是说rpcallowip和rpcbind需要同时设置,可以看到这句话

-rpcbind=[:端口]

绑定到给定地址以侦听 JSON-RPC 连接。 不要暴露

RPC 服务器到不受信任的网络,例如公共互联网!

除非还传递了 -rpcallowip,否则将忽略此选项。 端口是

可选并覆盖 -rpcport。 使用 [host]: 端口表示法

IPv6。 可以多次指定此选项(默认值:

127.0.0.1 和 ::1 即本地主机)

如果想允许更多ip访问bitcoind,可以参考我的配置。 网上很多文章提到的使用*作为通配符已经过时了。 这样做会阻止 bitcoind 正常启动。 详情请参考比特币官网文档。

注意:我的配置极不安全,强烈不推荐。 出于安全考虑,请合理使用白名单。

然后就可以在白名单中找一台机器来调用服务器的rpc接口

1

curl --user bitcoin --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnetworkinfo", "params": [] }' -H 'content-type: text/plain;' http://10.0.1.5:8332/

如果能够正确获取 json 就好了。

如果你不知道如何卷曲2022比特币节点数量,请参考这篇文章

参考文章

请参考rpcbind的说明(我的checkout版本是0.18)

概括

互联网上的信息是时效性的。 目前很多资料都没有提到rpcbind。 请阅读比特币官方说明,搜索外文资料。 这种信息的价值相对较高,有利于快速解决问题。