python - bitcoinrpc 调用不返回任何内容

标签 python django json-rpc bitcoind

我在我的项目中使用 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 

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

最佳答案

天哪,那是 repo 协议(protocol)中的错误,几个月前我在本地修复了它,然后忘记了!如果你有同样的问题,你可以手动编辑 lib/python2.7/site-packages/bitcoinrpc/authproxy.py 删除 else: 在 146 行并移出 return response['result'] 来自 elif block ,如下所示: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 中修复它。

关于python - bitcoinrpc 调用不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38643016/

相关文章:

port - 在 Windows 上运行 RSK 节点时如何避免 "PeerDiscoveryException"?

python - 如何使用 Python 将变量中的列值插入到 Postgres 中?

Python:list.sort() 查询当列表包含不同元素类型时

python - 如何用 Pandas 计算两个数据帧之间的百分比差异?

django - 你如何将 Django 的 SelectDateWidget 的顺序更改为日、月、年?

telnet - 通过 telnet 使用 json-rpc?

json-rpc - 在实现 JSONRPC 2.0 服务器时,是否需要同时支持命名参数和位置参数?

python - Microsoft Visual C++ 2008 Redistributable Package 可以自由再分发吗

python - Django - 原始查询必须包含主键

python - django-debug-toolbar-line-profiler 只显示单行输出,没有内容