我有一个节点(虚拟机1),该节点具有用于SSH的开放端口,并且密钥位于密钥库中,同一网络中的另一个虚拟机(没有节点和密钥)可以使用该节点进行交易吗?通过访问使用web3.js的网站在虚拟机1中输入密钥?
例如就像在VM2 >>中访问指向localhost的METAMASK自定义RPC一样,但是事务在VM1中
请告知
答案 0 :(得分:1)
是的,可以,但这确实是危险!因为您基本上将密钥公开给外部世界,所以这是脚本小伙伴可以找到公开的RPC端点的蜜罐。
更好的方法是在VM2上创建事务并使用VM1广播它,根本不需要web3.js。只需将Websockets或HTTP-JSONRPC终结点公开到Web。 注意,您只应公开安全的API。
对于以太坊,VM1配置如下所示:
parity --jsonrpc-port 53545 \
--jsonrpc-interface 133.3.3.37 \ # your public IP of VM1
--jsonrpc-apis safe \ # only expose safe APIs
--jsonrpc-hosts 242.42.42.42 \ # the IP (or hostname) of VM2
这样,您可以在VM2上创建事务并使用VM1 raw transaction广播它:
curl --data '{"method":"eth_sendRawTransaction","params":["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST 133.3.3.37:53545