在CENTOS7上玩转Ethereum区块链(3):Ethereum挖矿转账初体验
来源:互联网 发布:淘宝客流量过大 编辑:程序博客网 时间:2024/05/20 15:39
三、Ethereum挖矿转账初体验
# 准备好两个SSH连接到虚机上
# 第一个SSH先创建一个日志文件geth_log_file,并开始持续观察
rm geth_log_file -fecho >> geth_log_filetail -f geth_log_file
# 第二个SSH进入到geth的Javascript的交互console
geth --dev console 2>> geth_log_file
# 先别急着挖矿,接下来打开第二个SSH,观察日志文件geth_log_file
# 要养成看log的习惯,虽然现在还暂时看不懂...
# OK,回到第一个SSH的console,开始一系列的正题操作:
# 查看矿工账号列表、创建矿工账号、开挖....
eth.accountspersonal.newAccount('123456') //密码personal.newAccount('654321') //密码eth.accountsuser1 = eth.accounts[0] //user1user2 = eth.accounts[1] //user2miner.start() //开挖....等3分钟....
# 借这个机会,查看下log输出情况,回到第二个SSH....看到小榔头说明挖矿正常进行中(有没有点小激动?)
# 可惜这里是开发环境的,但公共环境下也基本是相同的原理,只不过矿产没这么丰富没这么容易被挖到....
# 现在回到第一个SSH的Javascript的console下,停止挖矿,看看账号收益...
miner.stop() //停挖eth.getBalance(user1) //查看第一个矿工的收入eth.getBalance(user2) //查看第二个矿工的收入
# 貌似第一个矿工发了大财了,第二个矿工倒了大霉!这是因为geth下默认会把挖矿的收入分配给第一个账号...
# 下面均平富,给第二个矿工转个10个以太币作为劳务费吧!
eth.sendTransaction({from: user1, to: user2, value: web3.toWei(5, 'ether')}) //给第二个矿工转5个以太币# 结果提示失败,原因是未给user1解锁。未解锁情况下无法进行支付。所谓的解锁的过程,其实就是输入一遍账号的密码,等同于银行转账前请输入账号密码一样的概念。# 执行解锁后,再次进行转账,
# 转账成功后,产生交易号:0x68958f01c82b933101cca8f3c78932bcd11b9ca882a055653c2fadb9811add3e
# 完赶紧查下user2的账号看看钱是否到账?
personal.unlockAccount(user1, '123456') //解锁user1eth.sendTransaction({from: user1, to: user2, value: web3.toWei(5, 'ether')}) //给第二个矿工转5个以太币eth.getBalance(user2)eth.getBalance(user1)
# 说好的转账呢?!呵呵,因为区块链的交易确认是要通过挖矿来实现的,没有人挖矿,就意味着带有交易信息(就是刚才的那一大串字符串)的区块就没有在网络的各个节点中记录,而缺乏记录就意味着没有人认可这笔交易...所以当前的交易虽然成功了,但交易还需要等待全网确认...我们来继续启动挖矿...挖上个10秒,然后再看看结果...
miner.start() //开始挖矿...miner.stop() //10秒后停止挖矿eth.getBalance(user2) //再看看user2的账号情况eth.getBalance(user1) //同时看看user1的情况# 果然成功了...现在切换到第二个SSH看看log输出情况
# 在log中可以看到交易产生的时间以及受益人,同时可以看到在开始挖矿后,区块中携带交易信息的数量...
# OK,借这个环节,基本可以把挖矿的过程弄清楚了。
# 在现实中,挖矿的实际意义在于申请记账权,一旦帮网络上交易登记的账务,也就相当于认可了对方的交易。
# 挖矿的收益来自于以太币中的交易分佣,每笔交易的记账权的分佣很少,但一个区块中往往会记录很多条交易,积少成多,自然挖到这个区块的价值也就大了。但既然大家都在挖矿,有怎么能算作是被我挖到而不是你挖到呢?这里面就涉及到工作量证明机制了。
# 今天先到这里。
- 在CENTOS7上玩转Ethereum区块链(3):Ethereum挖矿转账初体验
- 在CENTOS7上玩转Ethereum区块链(2):Ethereum搭建篇
- 在CENTOS7上玩转Ethereum区块链(1):虚机架设篇
- 在CENTOS7上玩转Ethereum区块链(4):实验前的准备工作
- 在CENTOS7上玩转Ethereum区块链(6):实验二--对外发布智能合约服务
- 在CENTOS7上玩转Ethereum区块链(5): 实验一--在两台主机上分别部署eth rpc与truffle合约服务
- 区块链 以太坊 ethereum 实践
- 区块链(一)--Bitcoin、Ethereum、Hyperledger
- 【区块链】go ethereum 安装与使用
- 区块链(一)-Ethereum平台在Mac上的搭建
- Ethereum钱包区块同步问题
- 区块链技术 之 以太坊(ethereum)开发环境安装
- 区块链(二)--Bitcoin、Ethereum、Hyperledger Fabric
- 区块链(三)--Bitcoin、Ethereum、Hyperledger Fabric
- go-ethereum源码剖析:区块存储
- go-ethereum 部署私有链
- python ethereum 代码分析 《3》
- 【区块链】搭建基于ethereum以太坊环境的私有链
- SPOJ DQUERY D-query 莫队算法
- mybatis条件循环list
- 索引数组和关联数组的key与常量的关系
- java倒计时三种简单实现方式
- Java高并发编程(四)
- 在CENTOS7上玩转Ethereum区块链(3):Ethereum挖矿转账初体验
- linux unzip无法解压-bash: unzip: command not found
- 前端知识总结(css部分)
- 测试下
- js正则表达式判断
- linux内核字符设备驱动之写操作
- 谈谈对Zookeeper理解
- 一道ZHX的题 O (1) 快速乘 BSGS
- checkbox的坑