geth 无法转账/personal不可用/没有系统账户/系统账户余额为0/

本文详细描述了解决Geth中个人账户创建、系统账户识别、开发者权限设置及转账操作的问题,包括使用个人账户和开发者账户的方法,以及如何避免频繁复制指令。作者还分享了关于Geth易卡死的观察。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

geth

是关于区块链智能合约技术的软件,在学习过程中碰到了不能使用personal以及不能转账的问题,下面说说我的问题和解决方法

  1. 按照步骤在新建个人账户的时候发现不能使用personal.newAccount()指令新建,原因是personal该字段已被移除使用,如果还想使用personal字段,在启动geth时需要使用以下指令启动
    geth --datadir "./db" --nodiscover --rpc.enabledeprecatedpersonal console 2>>geth.log
  2. 成功创建个人账户之后,找不到系统账户,eth.accounts只有自己的账户并没有开发者账户,这是因为上面那条启动指令并没有加上开发者选项,所以最后我们使用以下指令启动
    geth --datadir "你自己的geth目录" --dev console --nodiscover --rpc.enabledeprecatedpersonal console 2>>geth.log 将双引号中的内容替换成你自己的geth目录即可,这样就既能拥有开发者账户,同时也能使用personal创建的个人账户。之前在使用的过程中,我采用不同的启动指令之后发现并不能找到另外一个启动指令的账户,personal启动找不到系统账户,带开发者启动找不到personal账户,并且开发者账户里面并没有初始金额。最后我尝试二合一,成功实现了转账流程,下面简单说一说怎么转账

转账操作

运用上面2中的指令启动后,eth.accounts获得你的开发者账户地址,可以通过eth.getBalance(eth.accounts[0])查看余额,如果为1.5xxxxxxxee+77之类的东西就是说明是系统账户。把刚刚的地址复制保存下来,然后使用personal.newAccount()会提示你输入密码和再次输入密码,输入完成后会给你个人账户的地址,同样复制保存下来,接下来进行转账,使用以下指令
eth.sendTransaction({from: ‘系统初始账户地址’, to: ‘自己创建的新账户地址', value: web3.toWei(100, "ether")})
将你自己的两个账户地址替换进去,这里的100就是100枚以太币。
转账完成后,通过eth.getBalance(eth.accounts[1])来查看你的个人账户里的余额,发现已经转过去了

至此,转账成功!

由于在网上搜不太到geth相关的帖子,所以我一直找不到办法解决问题,在摸索中找到了方法希望对被这个困扰的同学们有帮助,另外避免每次使用长指令复制黏贴麻烦可以把指令做到bat文件里,直接用bat文件启动就行。
(顺便吐槽一下geth真的很容易卡死,不知道什么原因…)
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值