geth遇到的一些问题(miner.setCoinbase/ miner.start())

对于geth和以太坊相关环境的部署,私有链的搭建就不多叙述,可以参考下面链接:手把手部署私有链

下面讲述遇到的两个问题:(主要参考他人文章解决的问题)

1、miner.setCoinbase(address)
很多的教程中采用这个方法来设置矿工收益地址。但是在最新版本的geth的API中,可以发现,这个方法已经发生更改。
geth的API地址geth-API
用法如下:在这里插入图片描述

2、当初始化genesis.json,通过geth启动网络之后,personal.newAccount()生成的账户是没有余额的,如下所示:geth --networkid 100 --datadir data/00 --rpc --rpcapi net,eth,web3,personal --allow-insecure-unlock console 2>>geth.log
在这里插入图片描述
原因:因为你的genesis.json中未定义"alloc":{}
解决方法:

  • 先创建一个用户(对于bash命令的含义不多做解释)geth --datadir data/03 account new在这里插入图片描述

  • 复制产生的账户地址,找到genesis.json文件,打开,将该地址添加到alloc属性中去。

"alloc": {
	"0x02a3d60cd7118C46A468Cea002448ea91aD72229": {
		"balance": "1000000000000000000000000"
	} 
  },

如图所示:在这里插入图片描述

  • 运行geth节点初始化geth --datadir data/03 init genesis.json在这里插入图片描述

  • 启动节点,查询账户余额

$ geth --networkid 100 --datadir data/03 --rpc --rpcapi net,eth,web3,personal --allow-insecure-unlock console 2>>geth.log
> eth.accounts
["0x02a3d60cd7118c46a468cea002448ea91ad72229"]
> eth.getBalance("0x02a3d60cd7118c46a468cea002448ea91ad72229")
1e+24
> 

成功


3、personal.unlockAccount(address, password)
报错:GoError: Error: account unlock with HTTP access is forbidden at web3.js:6347:37(47) at native at <eval>:1:69(4)

错误原因:新版本geth,出于安全考虑,默认禁止了HTTP通道解锁账户

解决方法:
启动网络代码(产生错误):geth --networkid 100 --datadir data/00 --rpc --rpcapi net,eth,web3,personal console 2>>geth.log

更改为:geth --networkid 100 --datadir data/00 --rpc --rpcapi net,eth,web3,personal --allow-insecure-unlock console 2>>geth.log

主要多了一个参数**–allow-insecure-unlock**

4、错误:Fatal: Failed to create account: mkdir /data: permission denied
在这里插入图片描述

很多的搭建教程都会出现这样的错误,这是因为路径的问题,data/00而非/data/00

5、minner.start() 返回null
这个的解决方案参考链接:去吧!皮卡丘

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值