bitcoinrpc 调用 return 什么都没有
bitcoinrpc calls return nothing
我在我的项目中使用 bitcoind,当我在我的服务器上部署它时,bitcoind 运行异常。我使用这个库来处理 rpc https://github.com/jgarzik/python-bitcoinrpc。在本地开发服务器上,一切都很好,但是当我将它部署到 vps 时,它会停止 return 数据。数据为空。我做了一些这样的测试:
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 接受连接并且不 return 身份验证异常,但对任何命令都没有反应。
但是如果我从控制台使用它:
bitcoin-cli getnewaddress
没问题,给个地址吧
天哪,那是回购协议中的错误,几个月前我在本地修复了它,然后忘记了!如果您遇到同样的问题,您可以手动编辑 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 中修复它。
我在我的项目中使用 bitcoind,当我在我的服务器上部署它时,bitcoind 运行异常。我使用这个库来处理 rpc https://github.com/jgarzik/python-bitcoinrpc。在本地开发服务器上,一切都很好,但是当我将它部署到 vps 时,它会停止 return 数据。数据为空。我做了一些这样的测试:
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 接受连接并且不 return 身份验证异常,但对任何命令都没有反应。
但是如果我从控制台使用它:
bitcoin-cli getnewaddress
没问题,给个地址吧
天哪,那是回购协议中的错误,几个月前我在本地修复了它,然后忘记了!如果您遇到同样的问题,您可以手动编辑 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 中修复它。