美文网首页
以太坊(三)开发环境搭建

以太坊(三)开发环境搭建

作者: 李孝伟 | 来源:发表于2018-11-09 15:19 被阅读17次

    以太坊作为区块链2.0的时代先锋,也是目前最有潜力的项目。
    本文基于centos7系统搭建以太坊开发环境。

    1. 依赖搭建
      git、wget、vim、gcc-c++、ntp组件、nodejs以及添加epel第三方安装源。部分说明:
    # gcc-c++:c/c++编译工具,用于golang下部分c库的编译以及truffle组件的编译
    # ntp:网络时钟同步组件;Ethereum的rpc网络需要时间同步;
    # nodejs:ethereum前端开发JavaScript包管理软件
    # epel:网络第三方的linux安装包源
    
    yum update -y && yum install git wget bzip2 vim gcc-c++ ntp epel-release nodejs cmake -y
    
    1. Go 开发语言安装(language 1.9.x)
      Go语言官网(https://studygolang.com/dl)下载最新的go包
    wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz
    tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz
    

    配置go环境变量

    vi /etc/profile
    export PATH=$PATH:/usr/local/go/bin
    export GOPATH=/opt/gopath
    立即生效配置文件
    source /etc/profile
    

    查看go 版本
    go version

    1. 克隆编译go-ethereum
    git clone https://github.com/ethereum/go-ethereum.git
    cd go-ethereum
    make all
    
    1. 配置环境变量
    echo "export PATH=$PATH:/server/go-ethereum/go-ethereum/build/bin" >> /etc/profile
    立即生效配置文件
    source /etc/profile
    

    5.安装cmake:智能合约编译solc需cmake编译 (版本要求:3.0.x +)
    去官网(https://cmake.org/download/)下载最新版本

    wget https://cmake.org/files/v3.13/cmake-3.13.0-rc3.tar.gz
    

    解压并编译并安装

    tar -xzvf  cmake-3.13.0-rc3.tar.gz
    cd cmake-3.13.0-rc3
    ./bootstrap && make && make install
    

    6.启动网络时间同步,时间很重要

    systemctl enable ntpd
    systemctl start ntpd
    
    1. 配置geth私有的创世纪的配置文件:genesis.json,该文件描述了如何初始化一个私有的gethereum
    vim genesis.json
    {
      "nonce": "0x0000000000000042",
      "timestamp": "0x00",
      "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "extraData": "0x00",
      "gasLimit": "0x80000000",
      "difficulty": "0x400",
      "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "coinbase": "0x2D356ee3F5b8718d8690AFCD31Fe2CB5E602677e",
      "alloc": {},
      "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
      }
    }
    
    参数名称    参数描述
    mixhash 与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意他和nonce的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。
    nonce   nonce就是一个64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。
    difficulty  设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度
    alloc   用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。
    coinbase    矿工的账号,随便填
    timestamp   设置创世块的时间戳
    parentHash  上一个区块的hash值,因为是创世块,所以这个值是0
    extraData   附加信息,随便填,可以填你的个性信息
    gasLimit    该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。
    
    1. 创建私有网络的gethereum
    cd root & geth --datadir "/data/ethbase/chain" init genesis.json
    

    9.启用私有链

    geth --dev  console 2>> geth_dev_log
    这种方式启动一个开发环境,每次账户都会创建一个新的;
    另一种方式启动一个不被发现的虚拟环境
    geth --datadir "/data/ethbase/chain" --nodiscover console 2>>eth_output.log
    

    退出使用exit
    建议写成脚本,避免遗忘:
    vi start-dev.sh

    #!/bin/bash
    geth --datadir "/data/ethbase/chain" --nodiscover console 2>>eth_output.log
    

    chmod 777 start-dev.sh
    私有链搭建完成

    1. 简单命令(命令行都是通过脚本或命令进入)
    查看账户
    web3.eth.accounts
    创建账户:密码123456
    web3.personal.newAccount("123456")
    

    效果如下:


    image.png

    相关文章

      网友评论

          本文标题:以太坊(三)开发环境搭建

          本文链接:https://www.haomeiwen.com/subject/libnxqtx.html