- 启动虚拟机私有链
geth --dev console 2>> geth_dev_log
或者使用上文的启动脚本
./start-dev.sh
- 查看和添加账户
>web3.eth.accounts
["0xe01692776b02b0af5a32c34da36d1e9d3dccf42d"]
创建账户 密码123456
>web3.personal.newAccount("123456")
"0xa54a3b275caa949019a066b2ccd782af90ada821"
另一种创建方式:
>web3.personal.newAccount()
Passphrase:
Repeat passphrase:
"0x948604a754efc85e59b22d2027176353523a023b"
- 挖矿和停止挖矿
>miner.start(1)
null
返回null也可能是误报,查看下区块高度;(如果很长时间高度仍然未变,尝试设置下矿工账户)
> eth.blockNumber
11
每次挖矿有变化就说明没问题,变化时需要时间的,所以等几秒甚至1分钟?看,这个网络同步等问题导致。
> miner.stop()
null
挖矿可以设置一个账户挖矿
> eth.coinbase
"0x10208a0eebc25c7d207948bdb1c3a7395d591d4c" //查看当前矿工账户
> miner.setEtherbase(acc1) //设置矿工账户
true
> eth.coinbase
"0x7f161bad27a2cd07ffc833c3f6b92e2183f1703d" //矿工账户已修改
- 查看账户余额
>web3.eth.getBalance("0x10ee74a1c0e28a904f18497b1b2962ca37e9b011")
315000000000000000000
可以通过设置昵称来代替这一长串地址
> web3.eth.accounts
["0x10ee74a1c0e28a904f18497b1b2962ca37e9b011"]
> acc0 = web3.eth.accounts[0]
"0x10ee74a1c0e28a904f18497b1b2962ca37e9b011"
> web3.eth.getBalance(acc0)
320000000000000000000
单位转换下
>web3.fromWei(eth.getBalance(acc0))
320
以太币最小的单位是wei(18个0)
geth console 是一个基于js的客户端,可以定义函数
>function checkAllBalances() {
var totalBal = 0;
for (var acctNum in eth.accounts) {
var acct = eth.accounts[acctNum];
var acctBal = web3.fromWei(eth.getBalance(acct), "ether");
totalBal += parseFloat(acctBal);
console.log(" eth.accounts[" + acctNum + "]: \t" + acct + " \tbalance: " + acctBal + " ether");
}
console.log(" Total balance: " + totalBal + " ether");
};
会出现一个
undefined
可能是版本问题,但不影响使用,调用如下:
> checkAllBalances()
eth.accounts[0]: 0x10ee74a1c0e28a904f18497b1b2962ca37e9b011 balance: 320 ether
Total balance: 320 ether
undefined
如果命令较多,可以保存到一个脚本里,使用命令载入脚本:loadScript('/path/script/here.js')
5.转账操作
1)先创建一个账户,查看余额
> web3.personal.newAccount("123456")
"0x21952647372ee672c2d7e73eed2d9ee975d27182"
> acc1 = web3.eth.accounts[1]
"0x21952647372ee672c2d7e73eed2d9ee975d27182"
> web3.eth.getBalance(acc1)
0
2)转账
> web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,"ether")})
Error: authentication needed: password or unlock
at web3.js:3143:20
at web3.js:6347:15
at web3.js:5081:36
at <anonymous>:1:1
报错说明被锁了
解锁:第一个参数是账户,第二个是密码
> web3.personal.unlockAccount(acc0,"")
true
> personal.unlockAccount(acc1,"123456")
true
>web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,"ether")})
"0x059b386124cbf741f0ab4a262f81c03d4333ed2f359536991efab14637d5fedd"
> eth.getBalance(acc1)
0
> eth.getBalance(acc0)
550000000000000000000
>
此时账户没有变化,因为没有矿工在挖矿,没人记账,开启挖矿即可记账。(开始挖坑后也需要等待一段时间才会记账)
网友评论