2014-01-24 188 views
1

嘿,我想知道是否有人知道如何连接到位于另一台服务器上bitcoinrpcBitcoinrpc连接到远程服务器

我运行在Django做了一个网页程序,并使用名为bitcoinrpc一个Python库做一个比特币钱包连接。

在本地测试时,我可以使用bitcoinrpc.connect_to_local),甚至是bitcoinrpc.connect_to_remote('account','password'),只要帐户和密码与我的'比特币中指定的值匹配.conf'文件。然后,我可以使用连接对象来获取值,并在我的django网站中执行一些任务。

connect_to_local中的第三个参数是默认localhost。我想知道:

A)怎么才能从我的网络服务器连接到存储在我家补偿钱包指定此第三个参数(难道是我的IP地址)

B)因为钱包是什么?在我的电脑上而不是某个专用服务器上,这是否意味着我的IP将会改变,我将无法访问钱包?

C)连接字符串在django应用程序 - 它托管在heroku上。 Heroku应用程序是通过推送git启动的,但我相信这是一个私有存储库。尽管如此,如果任何人都能看到我的“观点”的前几行,他们将需要把我的BTC(或更准确地说,mBTC)。任何人都知道这是多么糟糕 - 或者以更安全的方式去做btc支付/转移的任何方式。

非常感谢。

回答

2

我目前正在做一些非常相似的事情(heroku使用express/nodejs而不是django/python tho),所以我会尽量分享我的想法。

尽管使用了其他库和其他语言,但所有的钱包远程库应该主要是JSON RPC(远程过程调用)API的包装,对于大多数硬币实际上是相同的(我会说所有,但这将是一个疯狂的猜测)。

具体到你的问题:

A)

从外部进入电子钱包,使用您的外部IP(最快的方式找到它是查询谷歌为它)。根据你的ISP,你希望有静态的外部地址。您必须将此地址提供给bitcoin.conf文件,该文件位于rpcallowip=选项中,以允许输入连接。

此外,您应该将您的家庭路由器中使用的端口(通常在NAT设置下)转发给本地计算机,以便允许来自服务器的传入连接并将其重定向到您的钱包计算机。

还有就是要考虑(https://en.bitcoin.it/wiki/Running_Bitcoin)一件重要的事情:

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. 

我还没有寻找到进一步,从该评论中单独似乎对货币交易完全无法使用。

B)

正如我以前说过,这取决于你的家ISP,连接,并提供给您的服务类型。

C)

如果我从一个django的点正确地理解,只要登录参数(用户名/密码)是一视图(应用程式的views.py)和调试模式内被关断,服务器的源代码不应公开访问。但A的安全问题仍然适用。

+0

非常感谢 - 如果这个安全问题仍然存在,那么你知道如何去处理比特币货币交易?最好的办法是获得我的网络服务器的IP,然后rpcallowip =只有那个 – amchugh89

+0

@ amchugh89这会拒绝来自其他来源的连接,但是JSON消息本身仍然会通过未加密的网络传播。您可以考虑创建VPN或某种安全的隧道。这取决于您的服务器(可能难以/不支持/不适用于您的服务器/云)。 – dak

-1

您可以在RPC中使用SSL来隐藏密码。

rpcssl = 1个