Python 到远程服务器的Bitcoinrpc连接
嘿,我想知道是否有人知道如何使用bitcoinrpc连接到另一台服务器上的比特币钱包 我正在运行一个用django编写的web程序,并使用一个名为bitcoinrpc的python库建立连接 在本地测试时,我可以使用bitcoinrpc.connect_to_local),甚至可以使用bitcoinrpc.connect_to_remote('account','password'),只要帐户和密码与我的'bitcoin.conf'文件中指定的值匹配,这种方法就可以工作。然后,我可以使用connection对象获取值,并在django站点中执行一些任务 connect_to_local中的第三个参数是default localhost。我想知道: A) 为了从我的Web服务器连接到存储在我的家庭电脑上的钱包(是我的IP地址吗?),需要为第三个参数指定什么 B) 因为钱包在我的电脑上,而不是某个专用服务器上,这是否意味着我的IP将发生变化,我将无法访问钱包 C) 连接字符串位于django应用程序中,该应用程序托管在heroku上。Heroku应用程序是通过git推送来启动的,但我相信这是一个私有存储库。尽管如此,如果有人能看到我的“视图”的前几行,他们将拥有获取我的BTC(或者更准确地说,mBTC)所需的一切。任何人都知道这有多糟糕——或者以更安全的方式进行btc支付/移动的任何方式Python 到远程服务器的Bitcoinrpc连接,python,django,heroku,rpc,bitcoin,Python,Django,Heroku,Rpc,Bitcoin,嘿,我想知道是否有人知道如何使用bitcoinrpc连接到另一台服务器上的比特币钱包 我正在运行一个用django编写的web程序,并使用一个名为bitcoinrpc的python库建立连接 在本地测试时,我可以使用bitcoinrpc.connect_to_local),甚至可以使用bitcoinrpc.connect_to_remote('account','password'),只要帐户和密码与我的'bitcoin.conf'文件中指定的值匹配,这种方法就可以工作。然后,我可以使用conn
非常感谢。我目前正在做一些非常类似的事情(heroku使用express/nodejs而不是django/python-tho),因此我将尝试分享我的想法 尽管使用了其他库和其他语言,但所有钱包远程库都应该主要是JSON RPC(远程过程调用)API的包装器,这对于大多数硬币来说实际上是相同的(我想说全部,但这是一个猜测) 针对您的问题: (A) 要从外部访问钱包,请使用外部ip(查找钱包的最快方法是向谷歌查询)。根据您的ISP,您希望有静态外部地址。您必须将此地址提供给
rpcallowip=
选项下的bitcoin.conf
文件,以允许输入连接
此外,您应该将家庭路由器中使用的端口(通常在NAT设置下)转发到您的本地计算机,以便允许来自服务器的传入连接并将其重定向到您的钱包计算机
有一件重要的事情要考虑():
我还需要进一步研究,仅从这一评论来看,它似乎完全无法用于货币交易
(B)
正如我之前所说,这取决于您的家庭ISP、连接类型和提供给您的服务
(C)
如果我从django的角度理解正确,那么只要登录参数(用户名/密码)在视图中(
views.py
),并且调试模式已关闭,服务器的源代码就不应公开访问。但是来自的安全问题仍然适用。您可以使用SSL和RPC来隐藏密码
rpcssl=1非常感谢-如果安全问题仍然存在,那么您知道如何处理比特币货币交易吗?最好先获取Web服务器的IP,然后再获取rpcallowip=onlythat@amchugh89这将拒绝来自其他来源的连接,但JSON消息本身仍将通过未加密的网络传输。您可以考虑创建VPN或某种安全隧道。这取决于您的服务器(对于您的服务器/云来说可能很困难/不受支持/不可用)。
By default, only RPC connections from localhost are allowed. Specify
as many rpcallowip= settings as you like to allow connections from
other hosts (and you may use * as a wildcard character).
NOTE: opening up the RPC port to hosts outside your local
trusted network is NOT RECOMMENDED, because the rpcpassword
is transmitted over the network unencrypted.