bitcoinrpc 调用不返回任何内容

Posted

技术标签:

【中文标题】bitcoinrpc 调用不返回任何内容【英文标题】:bitcoinrpc calls return nothing 【发布时间】:2016-07-28 17:27:12 【问题描述】:

我在我的项目中使用了 bitcoind,当我在我的服务器上部署它时,bitcoind 的工作很奇怪。我使用这个库来处理 rpc https://github.com/jgarzik/python-bitcoinrpc。在本地开发服务器上一切都很好,但是当我将它部署到 vps 时,它会停止返回数据。数据为空。我做了一些这样的测试:

bitcoin.conf file:
server=1
rpcuser=myuser
rpcpassword=mypassword
rpcconnect=127.0.0.1
rpcport=8332

一些view.py:

def btc_rpc_connect(config):

    rpc_server_url = ("http://user:password@host:port").format(
        user=config.rpc_user,
        password=config.rpc_pass,
        host=config.rpc_host,
        port=config.rpc_port
    )
    rpc_conn = AuthServiceProxy(rpc_server_url)
    return rpc_conn

user = request.user
# getting rpc settings from db
config = ProjectSettings.objects.get(id=1)
rpc_connection = btc_rpc_connect(config)
btc_address = rpc_connection.getnewaddress(user.username)

我还尝试从 django 的 ./manage.py shell 进行测试并手动输入此代码。事实是在开发服务器上工作,我在btc_address 有一个地址,但在 vps 上btc_address 是空的!请帮我。会不会因为权限问题而发生?无论如何,bitcoind 接受连接并且不返回身份验证异常,但对任何命令都没有反应。

但如果我从控制台使用它:

bitcoin-cli getnewaddress 

它工作正常并给我一个地址。

【问题讨论】:

【参考方案1】:

天哪,这是 repo 中的错误,几个月前我在本地修复了它,然后忘记了!如果您有同样的问题,您可以手动编辑 lib/python2.7/site-packages/bitcoinrpc/authproxy.py 删除 146 行上的 else: 并从 elif 块中移出 return response['result'],如下所示:https://github.com/jgarzik/python-bitcoinrpc/commit/8c0114bfbf7650d40a88b20d1e16ff79d768f3a9

另一种方法是删除python-bitcoinrpc:

pip uninstall python-bitcoinrpc

并重新安装正确的版本:

pip install git+https://github.com/jgarzik/python-bitcoinrpc.git

希望他们能尽快在 repo 中修复它。

【讨论】:

以上是关于bitcoinrpc 调用不返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章

DigitalOcean Spaces 调用 list_buckets 不返回任何内容

从 PHP 调用 node.js 脚本不返回任何内容

用户数据未从查询调用返回任何内容

HttpWebRequest GetResponse() 不返回任何内容

解析器函数不返回任何内容

始终调用 p:ajax 事件的 oncomplete,即使侦听器没有返回任何内容[重复]