(二)、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)//查看第二个矿工的收入
(二)、Ethereum挖矿、转账体验
文章图片


3.转账 貌似第一个矿工是个大土豪,第二个矿工穷光蛋!这是因为geth下默认会把挖矿的收入分配给第一个账号...
下面均平富,给第二个矿工转个1亿个以太币作为劳务费吧!
eth.sendTransaction({from: user1, to: user2, value: web3.toWei(100000000, 'ether')}) //给第二个矿工转1亿个以太币
(二)、Ethereum挖矿、转账体验
文章图片

如果结果提示失败,原因是未给user1解锁。未解锁情况下无法进行支付。所谓的解锁的过程,其实就是输入一遍账号的密码,等同于银行转账前请输入账号密码一样的概念。
【(二)、Ethereum挖矿、转账体验】执行解锁后,再次进行转账,
转账成功后,产生交易号:
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的情况
(二)、Ethereum挖矿、转账体验
文章图片


果然成功了...现在切换到第二个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")



    推荐阅读