【问题标题】:Problems with python-bitcoinrpc and python-monerorpcpython-bitcoinrpc 和 python-monerorpc 的问题
【发布时间】:2020-11-13 12:14:59
【问题描述】:

我在连接比特币和门罗币的 RPC 服务器时遇到问题。 我正在使用 python-bitcoinrpc 和 python-monerorpc 作为库,但它们无法同时连接。 这是我正在使用的代码:

from monerorpc.authproxy import AuthServiceProxy, JSONRPCException
from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
arg = { 
    "destinations": 
    [{
        "amount": 499978865000, 
        "address": "A2Xt28bHwF7TaqERoUV4QMTKkpytNMLVRaKGHnasdeNz6WEEWZ6K9LHZFXgNbQhskC24ejuMxfWzpNBG56EecXhdFqPG3GK",
    }],
    "account_index": 0,
    "priority": 0,
    "get_tx_key": True,
    }

btc = AuthServiceProxy(service_url="http://<username>:<password>@server-ip:port", timeout=120)
xmr = AuthServiceProxy(service_url='http://<username>:<password>@server-ip:port/json_rpc') 
print(xmr.getnewaddress("", "p2sh-segwit"))
print(xmr.getbalance()) 

连接时出现此错误:

-342: non-JSON HTTP response with '401 Unauthorized' from server 

任何帮助将不胜感激!

【问题讨论】:

  • 您好!哪一行触发了错误?到目前为止,您尝试过哪些解决方法?
  • 这是第 17 行 print(xmr.getbalance()) ,显然我必须在单独的文件中运行它们,这不是很好,我想在同一个文件中运行它们,但我真的不明白如何和为什么会导致错误
  • 第 16 行的打印功能是否打印地址?比特币和门罗币使用相同的 IP 地址和端口号,这看起来也很奇怪。
  • 确实,第 16 行的打印函数确实打印了一个地址。而且我没有为两者使用相同的端口和主机,这让我感到困惑!我认为AuthServiceProxy 存在问题,因为它包含在两者中并在monerorpc 中进行了修改

标签: python rpc bitcoin json-rpc monero


【解决方案1】:

您正在从两个库中导入 AuthServiceProxy,并希望 Python 记住每个库来自哪个库。我会尝试两件事:

  1. 使用别名导入两个 AuthServiceProxy 类(并分别重命名每个调用)
  2. 确保您可以独立调用门罗币和比特币端点而不会出错。

我怀疑对AuthServiceProxy 的两次调用实际上都是bitcoinrpc lib 调用,这可能会解释错误(因为您实际上可能以太快的成功调用相同的端点并导致API 抱怨) .

【讨论】:

  • 已经尝试过了,但没有用,这也是我怀疑的,但有点令人困惑!
  • 幽默一下并运行我在此粘贴中输入的稍作修改的代码:pastebin.com/LahfTVS8(也请注意 cmets)。
  • 我解决了,只需要在 AuthServiceProxy 中做一些更改
  • 那么让我们知道修复是什么,以帮助将来发现此问题的其他人。如果我的回答有帮助,请考虑投票。
  • 嗨@EscrowMyCoins 我面临同样的问题。能否请您发布您的修复程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2018-01-10
  • 2017-04-20
相关资源
最近更新 更多