ElectrumX Server无法连接bitcoind regtest节点,求配置验证与调试方案
ERROR:Daemon:daemon service refused: Not Found 启动ElectrumX服务器时反复出现错误:
ERROR:Daemon:daemon service refused: Not Found. Retrying occasionally...
预期目标:ElectrumX服务器正常连接bitcoind节点并完成初始化。
配置详情
ElectrumX配置(config)
DB_DIRECTORY = /home/omarosman23/.electrumx/db DB_ENGINE = rocksdb DAEMON_URL = http://rpcuser:rpcpassword@127.0.0.1:18443 COIN = BitcoinSVRegtest NETWORK = regtest SSL_CERTFILE = /home/omarosman23/.electrumx/electrumx.crt SSL_KEYFILE = /home/omarosman23/.electrumx/electrumx.key
Bitcoin守护进程配置(bitcoin.conf)
server=1 txindex=1 rpcuser=rpcuser rpcpassword=rpcpassword rpcallowip=0.0.0.0/0 [regtest] rpcbind=0.0.0.0 rpcport=18443
环境信息
- 操作系统:Ubuntu 22.04
- ElectrumX版本:1.20.2
- bitcoind版本:v27.0
配置验证与调试步骤
修正COIN参数
当前配置中COIN = BitcoinSVRegtest与你使用的Bitcoin Core(bitcoind v27.0)不匹配,需改为BitcoinRegtest。Bitcoin SV是独立分支,ElectrumX的COIN参数必须对应节点的区块链类型。测试RPC接口连通性
在终端执行以下命令,直接调用bitcoind的RPC接口验证响应:curl --user rpcuser:rpcpassword http://127.0.0.1:18443 -d '{"jsonrpc":"1.0","id":"test","method":"getblockchaininfo","params":[]}'- 若返回包含
chain: "regtest"的JSON数据,说明RPC接口正常; - 若返回404错误,检查bitcoind是否在regtest模式下运行,以及端口配置是否正确。
- 若返回包含
确认bitcoind的regtest模式激活
启动bitcoind时必须明确指定regtest模式:bitcoind -regtest查看bitcoind的调试日志(路径
~/.bitcoin/regtest/debug.log),确认存在类似InitParameterInteraction: parameter interaction: -regtest set -> setting -txindex=1的日志,确保regtest模式下txindex已启用。验证DAEMON_URL格式
若密码包含特殊字符(如@、!),需进行URL编码(例如@编码为%40)。也可尝试简化URL格式,去掉http://前缀:DAEMON_URL = rpcuser:rpcpassword@127.0.0.1:18443检查端口监听与防火墙
- 执行
netstat -tulpn | grep 18443,确认bitcoind进程正在监听18443端口; - 临时关闭Ubuntu防火墙测试:
sudo ufw disable,若连接恢复,添加允许本地访问的规则:sudo ufw allow in from 127.0.0.1 to any port 18443。
- 执行
排查版本兼容性
ElectrumX 1.20.2发布于2021年,可能与bitcoind v27.0的RPC接口存在兼容性问题。建议升级ElectrumX到最新稳定版本,或查阅官方文档确认该版本对bitcoind v27.0的支持情况。
内容的提问来源于stack exchange,提问作者Omar Osman

