运行公共以太坊节点是否安全?

ast*_*lor 2 security ethereum truffle web3-donotuse metamask

我正在用松露创造我的第一个以太坊合约.我希望Web应用程序可以在没有MetaMask的情况下使用,所以我想知道运行我自己的私有节点并从这样的前端连接是否是个好主意:

this.web3 = new Web3(new Web3.providers.HttpProvider('http://my-public-ip:8545'));
Run Code Online (Sandbox Code Playgroud)

这种方法有安全隐患吗?

ast*_*lor 7

我正在回答我自己的问题,因为似乎很多人都犯了同样的错误而且失去了以太!

  1. 我设置了可公开访问的节点,如下所示:

    geth --mine --nodiscover --maxpeers 0 --networkid 1 --rpc --rpccorsdomain"*" - rccaddr"my-public-ip"--rpcapi ="db,eth,net,web3,personal,web3 "

  2. 我创建了新的以太坊帐户,该帐户将成为我的"合同所有者"帐户

  3. 我在"合同所有者"账户中转移了少量以太,因此我可以有足够的天然气来部署我的新合同
  4. 我确实设置松露连接到我的以太坊节点
  5. 我用松露控制台来解锁我的帐户
  6. 我收到错误"错误:超过块气限制"

此时我很困惑,因为我在etherscan上看到我在我的帐户中有大约10美元的以太,这应该足以部署我的合同

我再次检查了etherscan,我看到"外向"交易从以太坊地址中消耗掉了我所有的钱

经过一番研究,这就是钱被盗的方式:

  1. 机器人发现了我的公共以太坊节点
  2. 它连接到它并请求帐户列表+帐户余额
  3. 它开始发送"sendTransaction"请求不停
  4. 当我在公共节点上解锁我的帐户以部署我的合同时 - 使用同一节点的机器人也可以访问我的帐户并从我的帐户转移了资金

我这样写是为了防止其他开发人员犯同样的错误.机器人地址是:https: //etherscan.io/address/0x957cd4ff9b3894fc78b5134a8dc72b032ffbc464#comments

有很多人从他们手中偷走了以太网.我不是在谈论我的10USD,到目前为止机器人已被盗:

ETH Balance:    37,070.060208365548676156 Ether
ETH USD Value:  $16,642,974.23 (@ $448.96/ETH)
Run Code Online (Sandbox Code Playgroud)

这应该在StackOverflow上,因为我在跟踪网络上的教程时遇到了这种情况,没有人解释风险和可能发生的事情