以太坊学习(二)--geth入门命令和miner.start返回null的问题

geth --datadir "./ethdev" --nodiscover console 2>>geth.log  //geth 进入控制台 --datadir 指定链的目录 与公有链区分开
进入命令行模式,其中参数
–datadir 代表文件夹地址,
–nodiscover 代表该链条不希望被其他节点发现,
console >> geth.log 代表将控制台输出到文件geth.log中去
当然从命令行模式退出,也很简单,只要打入exit, 即可退出

>eth.accounts   //查询账户 
[] 
这样创建的链中没有账户 

personal.newAccount("123456")  //创建一个账户  参数为私钥密码  返回值为账户的公钥

eth.getBalance(user1)   //获取账户的余额    
刚开始创建的账户余额都为0


eth.blockNumber    //查看区块链数

miner.start()   //开始挖矿

miner.stop()    //停止挖矿


这里执行  miner.start() 却返回null 。并且eth.blockNumber 数没有发生变化,因此断定没有挖矿。

根据产生的问题解决方法: 参考链接  http://mp.weixin.qq.com/s/AB9vj1EzOgWT7JyryfQhDg   这种方法实际不能解决问题。

然后可以参考  http://blog.csdn.net/wo541075754/article/details/79260040   可以解决不能挖矿的问题。

--dev Ephemeral proof- of -authority network with a pre-funded developer account, mining enabled
--dev.period value Block period to use in developer mode ( 0 = mine only if transaction pending) ( default : 0 )

因为在启动geth命令行的时候需要添加这两个参数。


虽然miner.start 还是返回null,但是 eth.blockNumber 却增长了,因此说明可以挖矿了。

添加--dev 参数,启动的时候便产生了一个账户,并且已经挖矿有余额。

eth.sendTransaction({from: user1, to: user2, value: amount})    //将0.01以太币从 user1 转移到user2   转移数量为0.01以太币

执行eth.sendTransaction 之后 user2的余额还是0,那是因为没有进行挖矿,交易没有完成。 挖矿之后user2便有了余额.



补充:

Ether币的基本单位
Ether币最小的单位是Wei,也是命令行默认的单位, 然后每1000个进一个单位,依次是

- kwei (1000 Wei)
- mwei (1000 KWei)
- gwei (1000 mwei)
- szabo (1000 gwei)
- finney (1000 szabo)
- ether (1000 finney)
简单地说就是就是1 以太币 = 1000000000000000000 Wei (这就是上一站章中为何我们转移0.01个以太币,结果却显示很长的原因)

如何进行ether 和 Wei之间的转换
Ether–> Wei:web3.toWei
> web3.toWei(1)
"1000000000000000000"
> web3.toWei(1.3423423)
"1342342300000000000"
> web3.toWei(0.00034)
"340000000000000"
>
Wei –> Ether: web3.fromWei
> web3.fromWei(10000000000000000)
"0.01"
> web3.fromWei(1000000000000000000)
"1"
>
以太坊的一个保护机制,每隔一段时间账户就会自动锁定,这个时候任何以太币在账户之间的转换都会被拒绝,除非把该账户解锁.
personal.unlockAccount(user1) 并输入密码来解锁user1才可以.

参考文章链接: http://www.8btc.com/eth-geth

猜你喜欢

转载自blog.csdn.net/hpp24/article/details/79401298
今日推荐