Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 到远程服务器的Bitcoinrpc连接_Python_Django_Heroku_Rpc_Bitcoin - Fatal编程技术网

Python 到远程服务器的Bitcoinrpc连接

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

嘿,我想知道是否有人知道如何使用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支付/移动的任何方式


非常感谢。

我目前正在做一些非常类似的事情(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.