zoukankan      html  css  js  c++  java
  • 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 periodtouseindeveloper mode (0= mine onlyiftransaction 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才可以.

  • 相关阅读:
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 26 删除排序数组中的重复项
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 25 K个一组翻转链表
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
    Java实现 LeetCode 24 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/11205885.html
Copyright © 2011-2022 走看看