2014-01-24 187 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個