以太坊私链连接钱包报错解决汇总

关键词

  • 虚拟机
  • MetaMask
  • 私有链
  • rpc
  • 以太坊

问题简述

区块链私链搭建完成之后,连接虚拟机上的私链与MetaMask钱包过程调试问题解决,主要包括

  • 以太坊命令行不识别–rpc

  • 无法获取链 IC,您的 RPC URL 地址是正确的么?

  • RPC端点使用链不同的链XXXX

问题1

使用如下含有rpc的命令启动私有链

geth --datadir . --rpc -rpcapi "eth,web3,miner,admin,personal,net" --rpccorsdomain "*" --nodiscover --networkid 15

虚拟机中的ETH命令行不识别–rpc

原因

之前版本中geth需要使用--rpc连接本地网络,在新版本中则采用了--http,具体参考geth官方文档

含有这种写法的文章比较久,现在连接命令有所更改,这是按照了较新版的命令行但是参考了较老的教程导致的

更改

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

使用该命令启动,虚拟机内的客户端成功启动

在这里插入图片描述

问题2

无法获取链 IC,您的 RPC URL 地址是正确的么?

确定在如下空格中填入了正确的新增RPC URL链ID

在这里插入图片描述

  • 使用ip a查询虚拟机ip地址

在这里插入图片描述

  • 新增RPC URL填写格式如下

    在这里插入图片描述

原因

在启动eth私有链的时候缺少参数,导致钱包无法正常连接

更改

加上--http.addr "0.0.0.0"--http.port 8545

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

可能每个人的启动参考文章不同,对照上述检查一下,当然上述命令中有一些是可选项

问题3

通过上述更改启动,保存失败

报错如下:

在这里插入图片描述

更改

chain id返回的不是1330,则将chainid设置成其返回值即可

连接成功

在这里插入图片描述

上述总结了在以太坊私链连接MetaMask的时候常见的三个问题,当然肯定不会全面概况遇见的所有问题,希望下面几篇文章能有所帮助

很多CSDN中关于该问题的相关博客,要么用处不大,要么版本较老,以下列出几个可以具体参考的不错文章

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐