geth
是关于区块链智能合约技术的软件,在学习过程中碰到了不能使用personal以及不能转账的问题,下面说说我的问题和解决方法
- 按照步骤在新建个人账户的时候发现不能使用personal.newAccount()指令新建,原因是personal该字段已被移除使用,如果还想使用personal字段,在启动geth时需要使用以下指令启动
geth --datadir "./db" --nodiscover --rpc.enabledeprecatedpersonal console 2>>geth.log
- 成功创建个人账户之后,找不到系统账户,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真的很容易卡死,不知道什么原因…)