(二)、Ethereum挖矿、转账体验

1.   启动geth

geth --dev console 2>> geth_dev_log  

或者:

geth --identity "TestNode" --rpc--rpcport "8545" --datadir /opt/data/ --port "30303"--nodiscover --dev --dev.period 1 console>> geth_dev_log

2.   查看矿工账号列表、创建矿工账号、开挖

eth.accounts  //查看矿工账号列表

personal.newAccount('132410')   //密码  

personal.newAccount('166200')   //密码  

eth.accounts  

user1 = eth.accounts[0]  //user1  

user2 = eth.accounts[1]  //user2  

miner.start()  //开挖....3分钟....  

停止挖矿,看看账号收益...

miner.stop()  //停挖  

eth.getBalance(user1)  //查看第一个矿工的收入  

eth.getBalance(user2)  //查看第二个矿工的收入  

3.   转账

貌似第一个矿工是个大土豪,第二个矿工穷光蛋!这是因为geth下默认会把挖矿的收入分配给第一个账号...

下面均平富,给第二个矿工转个1亿个以太币作为劳务费吧!

eth.sendTransaction({from: user1, to: user2, value: web3.toWei(100000000, 'ether')}) //给第二个矿工转1亿个以太币  

如果结果提示失败,原因是未给user1解锁。未解锁情况下无法进行支付。所谓的解锁的过程,其实就是输入一遍账号的密码,等同于银行转账前请输入账号密码一样的概念。

执行解锁后,再次进行转账,

转账成功后,产生交易号:

0x05362719cd12e38a61640de72e52a0f5fb4a188481738da21ff7a885c92d94fb

完赶紧查下user2的账号看看钱是否到账?

personal.unlockAccount(user1, '123456')  //解锁user1  

eth.sendTransaction({from: user1, to: user2, value: web3.toWei(100000000, 'ether')})  

eth.getBalance(user2)  

eth.getBalance(user1) 

如果还没转账成功!可能因为区块链的交易确认是要通过挖矿来实现的,没有人挖矿,就意味着带有交易信息(就是刚才的那一大串字符串)的区块就没有在网络的各个节点中记录,而缺乏记录就意味着没有人认可这笔交易...所以当前的交易虽然成功了,但交易还需要等待全网确认...我们来继续启动挖矿...挖上个10秒,然后再看看结果...

miner.start() //开始挖矿...  

miner.stop()  //10秒后停止挖矿  

eth.getBalance(user2) //再看看user2的账号情况  

eth.getBalance(user1) //同时看看user1的情况  


果然成功了...现在切换到第二个SSH看看log输出情况

在log中可以看到交易产生的时间以及受益人,同时可以看到在开始挖矿后,区块中携带交易信息的数量...

 OK,借这个环节,基本可以把挖矿的过程弄清楚了。

在现实中,挖矿的实际意义在于申请记账权,一旦帮网络上交易登记的账务,也就相当于认可了对方的交易。

 挖矿的收益来自于以太币中的交易分佣,每笔交易的记账权的分佣很少,但一个区块中往往会记录很多条交易,积少成多,自然挖到这个区块的价值也就大了。



Ethereum基本命令
1. 查看矿工账号列表:
eth.accounts
2. 查看cionbase
eth.coinbase
3. 查看区块数量
eth.blockNumber
4. 新建矿工账号,密码132410
personal.newAccount('132410') 
5. 指定矿工序号
user1 = eth.accounts[0]
6. 开挖
miner.start()
7. 停挖
miner.stop()
8. 查看第一个矿工的收
eth.getBalance(user1)
9. 给第二个矿工转5个以太币
eth.sendTransaction({from: user1, to: user2, value: web3.toWei(5, 'ether')})
10. 解锁user1
personal.unlockAccount(user1, '123456') 
11. 换另一个用户挖矿
miner.setEtherbase("0x3e5b31e581546f2900c0f3289153c788c92a2b41")


猜你喜欢

转载自blog.csdn.net/glongljl/article/details/80228878