以太坊智能合约开发入门

1、进入以太坊开发控制台(开发环境):
geth console --datadir "~/electrumx/ethdev" --dev 2>>eth.log

通过tail -f eth.log查看日志:

2、查看当前有哪些账户
eth.accounts

默认会有一个coinbase账户(挖矿账户),默认挖矿会挖到这个账户里。

3、创建一个新的账号
personal.newAccount('密码')
我们这里除了coinbase账户,又创建了两个账户

4、可以把账户赋值给某一个变量,同时查询账户中的余额

可以看到新加的两个账户中的以太币都是0.但coinbase账户默认已经有了余额。

5、在geth控制台中启动挖矿:
miner.start()

执行挖矿返回的是null,日志中输出开始挖矿,并提交了挖矿的工作量,但同时也有提示区块处理失败,错误信息显示等待交易。(在geth1.7.3之后,挖矿的工作量确认需要有交易产生的时候才能确认),我用到的geth是1.8.3

使用miner.stop()停止挖矿


对比了挖矿前后,coinbase账户里面的余额并没有变化。

6、那我们来尝试发起一笔交易看看会发生什么

从coinbase用户向user1转账
eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})
交易地址:0xba9419f284c4e473597363a37b4e6fb399dac5f291b7682c638a5f9f872354bf
输出日志

如果出现账户锁定的提示,需要先解锁账户
personal.unlockAccount(user1, "123456")

从user1向user2转账

7、再次查看以太币转移后的user2账户余额
但是发现user2的账户还是为0.这是因为没有矿工来挖矿处理。根据区块链的概念,我们知道,每次交易的确认,其实都是需要挖矿的,也就是被其他矿工共识确认,然后才能加入区块链的账本中。

好,我们执行“miner.start()”开始挖矿,

注意,前面挖矿操作因为没有交易,没有成功,这次有交易的情况下挖矿miner.start()虽然返回的是null,但日志中出现了挖矿的记录。

再次查看user1中的余额,3以太币到账

不过奇怪的是转账并没有使coinbase里面的余额减少,挖矿似乎也没有增加。

eth.blockNumber变为1了

试试把挖矿地址设置成user2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值