解决geth配置时遇到问题 Fatal: Failed to read genesis file: open genesis.json: permission denied

在使用创世块文件初始化链时,遇到了以下问题:Fatal: Failed to read genesis file: open genesis.json: permission denied

geth版本 Version: 1.9.6-unstable 日期 2024/4/15

这个问题应为,所查看的教程中并没有前置的客户端节点配置命令。

下载命令:

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum

可能遇到的问题

  • Fatal: invalid genesis file: missing 0x prefix for hex data:这个错误信息意思很明白,就是你的json文件中,对于16进制数据,需要加上0x前缀

  • Fatal: invalid genesis file: hex string has odd length: 从v1.6开始,设置的十六进制数值,不能是奇数位, 比如不能是0x0,而应该是0x00。

  • Fatal: failed to write genesis block: genesis has no chain configuration :这个错误信息,就是说,你的json文件中,缺少config部分。看到这个信息,我们不需要把geth退回到旧版本,而是需要加上config部分。

  • Error: invalid sender undefined: 这个错误不会导致初始化失败,但是会在以后的转账(eth.sendTransaction),或者部署智能合约的时候产生。解决方法就是chainId 不能设置为0。 如果你完全按照github上给的官方配置文件,就会产生这个错误。

  • Fatal: Failed to read genesis file: open genesis.json: The system cannot find the file specified.

    对创世块文件进行修正即可。

实操问题1.初始化"chain"时:Fatal: Failed to read genesis file: open genesis.json: permission denied

创世块文件内容

{
“config”: {
“chainId”: 10,
“homesteadBlock”: 0,
“eip150Block”: 0,
“eip155Block”: 0,
“eip158Block”: 0,
“byzantiumBlock”: 0,
“constantinopleBlock”: 0,
“petersburgBlock”: 0
},
“coinbase” : “0x0000000000000000000000000000000000000000”,
“difficulty” : “0x20000”,
“extraData” : “”,
“gasLimit” : “0xffffffff”,
“nonce” : “0x0000000000000042”,
“mixhash” : “0x0000000000000000000000000000000000000000000000000000000000000000”,
“parentHash” : “0x0000000000000000000000000000000000000000000000000000000000000000”,
“timestamp” : “0x00”,
“alloc” : {}
}

尝试解决,首先切换超级用户 sudo geth --datadir “chain” init genesis.json 无效;

更改文件权限,chmod 777 genesis.json 无效;

检查安装 sudo snap install geth :snap “geth” is already installed, see ‘snap help refresh’;完好

猜测是geth版本问题,尝试更新

版本更新

sudo apt-get update
sudo apt-get upgrade

检查发现geth的版本仍然未改变 尝试卸载时,出现下列说明:Package ‘geth’ is not installed, so not removed

此时在不影响项目独立性的前提下,可以直接选择指定版本安装(可以跳过此操作,问题产生并非geth版本所致)

在上述方法无效的基础上,运行以下命令:sudo apt install ethereum

成功解决,客户端节点未配置导致问题出现。

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值