以太坊私有链中geth的操作

时间:2024-04-13 09:23:55

以太坊私有链中geth的操作

1、新建账户
区块链中的账户是由一个公钥和一个私钥组成的,公钥是别人可以转钱给你的地址
第一种方式不先指定私钥:

personal.newAccount()

第二种先指定私钥:

personal.newAccount("123456")

以太坊私有链中geth的操作
2、查看系统中的账户
两种方式都可以查看

personal.listAccounts
eth.accounts

以太坊私有链中geth的操作
这两种方式都可以当做数组用下表索引
以太坊私有链中geth的操作
3、查看余额
查看系统中第一个账户的余额

eth.getBalance(eth.accounts[0])

以太坊私有链中geth的操作
4、启动挖矿与结束挖矿
start中的参数是挖矿的线程数(我虚拟机分配了2G内存,挖了十分钟,期间卡得要死,电脑什么事都干不了,所以我选择打了一把王者的人机,慢慢等吧)

miner.start(1)
miner.stop()

以太坊私有链中geth的操作
5、查看区块高度
如果区块高度比以前增加了,表明你挖矿成功了。
还有一种方式验证是否挖矿成功就是查询账户余额

eth.blockNumber

以太坊私有链中geth的操作
6、保存挖矿收益

web3.fromWei(eth.getBalance(eth.accounts[0]),'ether')

以太坊私有链中geth的操作
7、查看当前挖矿收益的账户
查看当前挖矿收益的账户(意思就是你的每次挖矿所得都是默认存入这个账户,默认是eth.accounts[0],即第一个账户)

eth.coinbase

修改挖矿收益账户

miner.setEtherbase(eth.accounts[1])

以太坊私有链中geth的操作
8、解锁账户
解锁账户是为了对账户的存款做一些操作,这时需要你账户的地址(公钥)和密码
方法一:括号中的参数第一个是地址,第二个是密码

personal.unlockAccount("0xb0eda7494d2515d907368d3515c9559a1d91cc09","123456")

以太坊私有链中geth的操作
方法二:通过命令行输入密码

personal.unlockAccount(eth.accounts[1])

以太坊私有链中geth的操作
9、转账
每次进行转账操作都需要解锁账户,因为账户每隔一段时间就会被锁住,要发送交易,必须先解锁账户
参数说明:第一个转出账户,第二个接收账户,第三个转出3个以太币

eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(3,"ether")})

返回结果,此时账户余额并没有发生变化
以太坊私有链中geth的操作
此时交易已经提交到区块链,返回了交易的hash,但还未被处理,这可以通过查看txpool来验证:

txpool.status

以太坊私有链中geth的操作
其中有一条pending的交易,pending表示已提交但还未被处理的交易。
要使交易被处理,必须要挖矿。这里我们启动挖矿,然后等待挖到一个区块之后就停止挖矿
txpool中pending的交易数量应该为0了,说明交易已经被处理了:
(这个数额是我上完个厕所回来,结果挖矿挖多了赚钱了,所以数额不对)
以太坊私有链中geth的操作
10、查看交易
通过交易哈希查看交易

eth.getTransaction("0x32f0ede0209c24ed1673e1e1298808952127f3714c952e84a349674315da199b")

以太坊私有链中geth的操作
通过区块号查看区块

eth.getBlock(5)

以太坊私有链中geth的操作