Remix 使用Web3 Provider连接不上 Geth

环境

Remix :Win10中 Chrome浏览器打开Remix https://remix.ethereum.org/

Geth(版本1.10.16):运行在VMware中Centos虚拟机中

操作时间:2022-03-24

问题

在使用Remix中Web3 Provider连接Geth私链时,一直连接不成功。

虚拟机中Geth启动命令:

geth --datadir data --networkid 18 --http --http.corsdomain "*" --http.addr "0.0.0.0" --http.vhosts "*" --http.port 8545 --http.api db,web3,eth,debug,personal,net,miner,admin --rpc.allow-unprotected-txs --allow-insecure-unlock --port 30303 console  2> 1.log

Win10中能ping通虚拟机中的IP地址并且能telnet通端囗。

连接时配置如下:

Remix 使用Web3 Provider连接不上 Geth_第1张图片

此时会在Remix左下角出现错误提示:

Remix 使用Web3 Provider连接不上 Geth_第2张图片

解决问题过程(费时)

网上查到一种解决方案,将Remix的https访问(https://remix.ethereum.org/)改成http访问(http://remix.ethereum.org/),尝试此方法,但是仍没成功。这种方法可能在某个时间段内是可以的,但是现在不可以了。

当然也尝试了启动Geth方式及修改各种配置和参数,仍无结果。最后请教了我的老师,提供了2种方法。

终极解决

1、解决方案一

连接不成功,可能是Remix升级了之后做了限制。因此在虚拟机Centos中的图形界面,使用Chrome浏览器打开Remix(https访问),通过 Web3 Provider 配置 Endpoint 为http://127.0.0.1:8545 连接成功,成功后如下图所示:

Remix 使用Web3 Provider连接不上 Geth_第3张图片

此方案Remix的访问与Geth的部署同在一个虚拟机中。

2、解决方案二

(1)使用Metamask浏览器钱包连接虚拟机中的Geth,步骤如下面两图所示:

Remix 使用Web3 Provider连接不上 Geth_第4张图片

Remix 使用Web3 Provider连接不上 Geth_第5张图片

(2)Remix使用Injected Web3连接Metamask钱包中的Geth

Remix 使用Web3 Provider连接不上 Geth_第6张图片

此方法是Remix借助Metamask钱包跳转到Geth,实现了Win10中的Remix连接上虚拟机中的Geth。

你可能感兴趣的:(智能合约,以太坊)