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才可以.

  • 相关阅读:
    软件测试面试之剖析面试官
    DVWA之文件包含(File inclusion)
    DVWA之跨站请求伪造(CSRF)
    DVWA之命令注入(command injection)
    DVWA之Brute Force教程
    SQL注入中的整型注入实验
    模拟一次CSRF(跨站请求伪造)例子,适合新手
    安卓中Paint类和Canvas类的方法汇总
    C语言程序设计:现代方法(第2版)第三章全部习题答案
    C语言程序设计:现代方法(第2版)第二章全部习题答案
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/11205885.html
Copyright © 2011-2022 走看看