zoukankan      html  css  js  c++  java
  • 以太坊开发环境搭建

    Geth安装

    全称 Go Ethereum, 官网地址:https://github.com/ethereum/go-ethereum/wiki/geth

    安装指令:

    brew tap ethereum/ethereum

    brew install ethereum

    版本检测:

    geth version

    以太坊生产网络/测试网络/私有网络

    • 测试网络是官方提供的, 专供用来开发、调试和测试。
    • 因为网络是官方提供的,因此对于以太坊技术的底层实现、Geth的各种参数接口、整个以太坊的技术真实性能的理解就会弱很多。
    • 从开发的角度来说,一个更好的选择是Private Network,可以从技术的底层去深入理解以太坊。
    私有网络

    以太坊的私有网络,顾名思义就是由用户自己通过Geth创建的私有网络,是一个非常适合开发、调试和测试的网络。

    优点

    • 方便开发者深入理解以太坊的技术底层
    • 因为节点相对较少,速度较快
    • 用户可以随时创建,随时销毁,随时重建一个以太坊网络
    • 随意的增加节点数目,或者删除节点,
    • 既可以在服务器上建立,也可以在自己的windows或者Mac机器上建立
    • 甚至一台机器可以建立多个节点,在一台机器上实现多节点的私有网络。

    缺点

    • 因为不是全球化的,只有在私有网络内的节点才能查看智能合约的执行、调用等。

    搭建私有网络

    1. 建立目录和 genesis.json

      • 创建一个目录,例如tmpPrivate
      • 创建文件genesis.json, 并填入如下内容

      { "nonce": "0x0000000000000042", "timestamp": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x0", "gasLimit": "0x80000000", "difficulty": "0x1", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x3333333333333333333333333333333333333333", "alloc": { } }

    2. 执行命令,创建创世区块

      geth --datadir "./" init genesis.json

      执行之后当前目录下面会新增出两个文件夹gethkeystore

      • geth中保存的是区块链的相关数据
      • keystore中保存的是该链条中的用户信息
    3. 创建自己的私有链条

      • 执行一条最简单的geth命令,来创建自己的私有链条
        geth --datadir "./" --nodiscover console 2>>geth.log
    4. 在自己的私有链条上创建用户

      • 输入命令 eth.accounts

        可以看到当前该区块链中共有几个账号,以及每个账号的公钥地址

      • 创建一个新用户,密码是xxx personal.newAccount("xxx")

    5. 输出区块链的Log

      • 执行如下命令

        geth --datadir "./" --nodiscover console 2>>geth.log

        进入命令行模式,其中参数

        • --datadir 代表文件夹地址
        • --nodiscover 代表该链条不希望被其他节点发现,
        • console >> geth.log 代表将控制台输出到文件geth.log中去
      • 打开另一个终端,找到geth.log的所在目录,执行命令tail -f geth.log 从而持续的输出以太坊的日志

    6. 开始挖矿

      • 执行命令miner.start(), 开始在我们的区块链上进行挖矿

      注意点:

      1. 挖矿挖到的ether币会默认保存在第一个账户中,即eth.acccounts[0]中。

      2. 挖矿是执行智能合约的基础。如果停止挖矿的话,不仅以太币会停止生成,所有智能合约的调用也会不起作用。

      3. 如果真的要停止挖矿,可以执行命令miner.stop()来停止挖矿

      4. 按上面的命令,应该是可以实现以太坊挖矿的。如果不行的话,有可能就是之前有存在的链,此时应该删除之前的数据。在Mac下即删除~/.ethash文件夹和里面的文件即可。

    7. 挖矿启动后,查看主账户的以太币数量

      acc0 = eth.accounts[0]

      eth.getBalance(acc0)

      结果只要不为0,那就说明挖矿成功!

  • 相关阅读:
    iOS CALayer 学习(2)
    iOS CALayer 学习(1)
    iOS 绘画学习(5)
    iOS 绘画学习(4)
    果冻视图制作教程
    15个名不见经传的Unix命令
    WEB服务器2--IIS架构(转)
    WEB服务器1--开篇
    HTTP协议5之代理--转
    HTTP协议4之缓存--转
  • 原文地址:https://www.cnblogs.com/samniu/p/8657873.html
Copyright © 2011-2022 走看看