以太坊私有链中geth的操作
1、新建账户
区块链中的账户是由一个公钥和一个私钥组成的,公钥是别人可以转钱给你的地址
第一种方式不先指定私钥:
personal.newAccount()
第二种先指定私钥:
personal.newAccount("123456")
2、查看系统中的账户
两种方式都可以查看
personal.listAccounts
eth.accounts
这两种方式都可以当做数组用下表索引
3、查看余额
查看系统中第一个账户的余额
eth.getBalance(eth.accounts[0])
4、启动挖矿与结束挖矿
start中的参数是挖矿的线程数(我虚拟机分配了2G内存,挖了十分钟,期间卡得要死,电脑什么事都干不了,所以我选择打了一把王者的人机,慢慢等吧)
miner.start(1)
miner.stop()
5、查看区块高度
如果区块高度比以前增加了,表明你挖矿成功了。
还有一种方式验证是否挖矿成功就是查询账户余额
eth.blockNumber
6、保存挖矿收益
web3.fromWei(eth.getBalance(eth.accounts[0]),'ether')
7、查看当前挖矿收益的账户
查看当前挖矿收益的账户(意思就是你的每次挖矿所得都是默认存入这个账户,默认是eth.accounts[0],即第一个账户)
eth.coinbase
修改挖矿收益账户
miner.setEtherbase(eth.accounts[1])
8、解锁账户
解锁账户是为了对账户的存款做一些操作,这时需要你账户的地址(公钥)和密码
方法一:括号中的参数第一个是地址,第二个是密码
personal.unlockAccount("0xb0eda7494d2515d907368d3515c9559a1d91cc09","123456")
方法二:通过命令行输入密码
personal.unlockAccount(eth.accounts[1])
9、转账
每次进行转账操作都需要解锁账户,因为账户每隔一段时间就会被锁住,要发送交易,必须先解锁账户
参数说明:第一个转出账户,第二个接收账户,第三个转出3个以太币
eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(3,"ether")})
返回结果,此时账户余额并没有发生变化
此时交易已经提交到区块链,返回了交易的hash,但还未被处理,这可以通过查看txpool来验证:
txpool.status
其中有一条pending的交易,pending表示已提交但还未被处理的交易。
要使交易被处理,必须要挖矿。这里我们启动挖矿,然后等待挖到一个区块之后就停止挖矿
txpool中pending的交易数量应该为0了,说明交易已经被处理了:
(这个数额是我上完个厕所回来,结果挖矿挖多了赚钱了,所以数额不对)
10、查看交易
通过交易哈希查看交易
eth.getTransaction("0x32f0ede0209c24ed1673e1e1298808952127f3714c952e84a349674315da199b")
通过区块号查看区块
eth.getBlock(5)