嘿,我想知道是否有人知道如何使用bitcoinrpc连接到另一台服务器上的比特币钱包
我正在运行一个用django制作的web程序,并使用一个名为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支付/运动的任何方式。
非常感谢。
答案 0 :(得分: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的安全问题仍然存在。
答案 1 :(得分:-1)
您可以将SSL与RPC一起使用来隐藏密码。
rpcssl = 1