在上一讲如何使用geth搭建以太坊私有链完成了私有链的搭建,下面介绍在私有链上的基本操作。
创建账户
启动私有链后在命令行输入:
## 123456为密码
personal.newAccount("123456")
执行完之后可以查看到生成的账户地址为0xe6e4e20c95abc11dca8b3e9c292a34725bf89930
查询账户余额:
## 返回余额为0
> eth.getBalance("0xe6e4e20c95abc11dca8b3e9c292a34725bf89930")
0
>
如何进行挖矿
刚刚创建的私有链账户都是没有余额的,需要通过挖矿才会产生eth,下面介绍如何在私有链上挖矿。
在geth环境下执行:
## 返回null标示成功
> miner.start()
null
这时候查看日志geth.log可以看到以太坊私有链有个启动的百分比,到100就正式启动了:
挖矿开始:
- 如果第一次挖矿遇到一直卡在Commit new mining work,有可能是因为创世块初始化失败,检查初始化genesis.json的指令输出Fatal: Failed to write genesis block: genesis has no chain configuration,原因是genesis.json没有配置config属性。
- 还有一种挖矿失败可能是因为之前存在的链,把~/.ethash删除即可。
这时候有个疑问,挖矿挖到的eth到哪了,其实默认到了eth.account[0],就是第一个账户上:
## 第一次创建的那个账户就是默认挖矿所得的账户
> eth.getBalance("0xe6e4e20c95abc11dca8b3e9c292a34725bf89930")
115000000000000000000
## 这里单位是gwei,如果需要转换为eth为单位
> balance = eth.getBalance("0xe6e4e20c95abc11dca8b3e9c292a34725bf89930")
115000000000000000000
> web3.fromWei(balance,"ether")
115
如何修改挖矿所得的账户:
miner.setEtherbase(需要设置的eth地址)
进行转账操作
命令如下:
## 其中amount为gwei单位
eth.sendTransaction({from: acc0, to: acc1, value: amount})
下面开始进行转账:
这时候出现报错,原因是转账的账户没有解锁,需要输入密码解锁转账的账户才能完成转账操作:
> personal.unlockAccount("0x01b5ecbcd8d46c1a9ee52e8b8a30bb6426dffb1b")
Unlock account 0x01b5ecbcd8d46c1a9ee52e8b8a30bb6426dffb1b
Passphrase:
true
> eth.sendTransaction({from: "0x01b5ecbcd8d46c1a9ee52e8b8a30bb6426dffb1b", to: "0xe6e4e20c95abc11dca8b3e9c292a34725bf89930", value: web3.toWei(3)})
"0x6909c8d196933f648ecafa08e683a4627a6719650a5d102a56d8f3d7d099cc52"
## 转账提交之后输出这次交易的hash
- 注意需要保持你的私有链在挖矿中,待区块打包成功后这笔转账就到账了。
网友评论