美文网首页
以太坊搭建步骤

以太坊搭建步骤

作者: 传输技术控 | 来源:发表于2018-03-05 18:09 被阅读0次

    网上有很多关于如何搭建以太坊的文章,笔者测试了一下,几乎每一篇文章都无法完整的将以太坊搭建起来,所以笔者将自己如何搭建以太坊的全体过程书写了下来,方便大家进行搭建。

    准备工作(依Centos6.5系统为例)

    1:首先先更新系统

    yum update

    2:安装依赖的包

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gccperl-ExtUtils-MakeMaker

    3:下载git源码并解压缩

    wget https://github.com/git/git/archive/v2.3.0.zip

    unzip v2.3.0.zip

    cd git-2.3.0

    4:编译安装

    make prefix=/usr/local/git all

    make prefix=/usr/local/git install

    5:我们要把编译安装的git路径放到环境变量里,让它替换"/usr/bin"下的git。为此我们可以修改“/etc/profile”文件(或者/etc/bashrc文件)。

    sudo vim /etc/profile

    然后在文件的最后一行,添加下面的内容,然后保存退出。

    export PATH=/usr/local/git/bin:$PATH

    6:使用source命令应用修改。

    source /etc/profile

    注意,这里的意思是使用最新的git,如果不是最新的git,后面进行编译时会报错

    安装go环境:

    wget https://studygolang.com/dl/golang/go1.9.linux-amd64.tar.gz --no-check-certificate

    tar -zxvf go1.9.linux-amd64.tar.gz

    mv go /usr/local/

    echo "export GOROOT=/usr/local/go" >> /etc/profile

    echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile

    source /etc/profile

    这里注意,目前以太坊的最新源码在go1.9.0下编译会出错,所以需要安装1.9.2版本的go

    安装go-ethereum

    git clone https://github.com/ethereum/go-ethereum.git

    cd go-ethereum/

    gmake all

    echo "export PATH=$PATH:$PWD/build/bin" >> /etc/profile

    source /etc/profile

    部署以太坊私有链

    创世服务器搭建

    1:创建创世服务器信息并保存成genesis.json(此处的文件名可以随便定义)

    {

        "config": {

            "chainId": 0,

            "homesteadBlock": 0,

            "eip155Block": 0,

            "eip158Block": 0

        },

        "alloc": {

            "0xbdda794a097b41309700fdc5bdba880a7763c738": {

                "balance": "1000"

            }

        },

        "nonce": "0x0000000000000042",

        "difficulty": "0x020000",

        "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",

        "coinbase": "0x0000000000000000000000000000000000000000",

        "timestamp": "0x00",

        "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",

        "extraData": "",

        "gasLimit": "0xffffffff"

    }

    2:将可执行文件和创世文件上传至目录(例如:/projects/ethereum/geth)

    3:导入创世文件

    geth --datadir "/projects/ethereum/geth/node" init genesis.json

    4:启动创世块

    nohup geth --nodiscover  \

    --maxpeers 3 \

    --identity "otvcloud private etherum" \

    --rpc \

    --rpccorsdomain "*" \

    --datadir "/projects/ethereum/geth/node" \

    --port 30303 \

    --rpcapi "db,eth,net,web3" \

    --networkid 96579 &

    5:进入创世服务器控制台

    geth attach ipc:/projects/ethereum/geth/node/geth.ipc

    6:查询创世服务器信息

    指令:

    admin.nodeInfo

    返回:

    {

      enode: "enode://069e5891756044331f3fc138710417e2988ea8e133f32e351ec4b06556ebff030f6d5a91ba511bb630b629e302a5efe969b96ef6b0d9cb337e18afe24e77e398@[::]:30303?discport=0",

      id: "069e5891756044331f3fc138710417e2988ea8e133f32e351ec4b06556ebff030f6d5a91ba511bb630b629e302a5efe969b96ef6b0d9cb337e18afe24e77e398",

      ip: "::",

      listenAddr: "[::]:30303",

      name: "Geth/otvcloud private etherum/v1.8.2-unstable-a1984ce7/linux-amd64/go1.9.2",

      ports: {

        discovery: 0,

        listener: 30303

      },

      protocols: {

        eth: {

          config: {

            chainId: 0,

            eip150Hash: "0x0000000000000000000000000000000000000000000000000000000000000000",

            eip155Block: 0,

            eip158Block: 0,

            homesteadBlock: 0

          },

          difficulty: 131072,

          genesis: "0xc3a1a0f0a2b2d9ea646798a69e0c165fa86af1c3ebe2e862c3dbb4e64803a018",

          head: "0xc3a1a0f0a2b2d9ea646798a69e0c165fa86af1c3ebe2e862c3dbb4e64803a018",

          network: 95518

        }

      }

    }

    节点服务器搭建

    搭建创世服务器的过程,重新在节点服务器中进行操作。

    7:添加创世服务器节点信息

    指令:

    admin.addPeer("enode://069e5891756044331f3fc138710417e2988ea8e133f32e351ec4b06556ebff030f6d5a91ba511bb630b629e302a5efe969b96ef6b0d9cb337e18afe24e77e398@115.159.34.126:30303")

    返回:

    True

    这里的enode是创世服务器通过admin.nodeInfo指令查找出来的enode:信息

    8:在创世服务器上添加节点服务器信息

    指令:

    admin.addPeer("enode://069e5891756044331f3fc138710417e2988ea8e133f32e351ec4b06556ebff030f6d5a91ba511bb630b629e302a5efe969b96ef6b0d9cb337e18afe24e77e398@115.159.34.126:30303")

    返回:

    True

    这里的enode是节点服务器通过admin.nodeInfo指令查找出来的enode:信息

    9:查看节点信息

    指令

    admin.peers

    10:创建新的帐号:

    指令:

    personal.newAccount()

    Passphrase:

    Repeat passphrase:

    11:开始挖矿:

    (1):设置挖矿工的帐号指令:

    miner.setEtherbase(eth.accounts[0])

    (2):开始挖矿

    miner.start()

    (3):查看矿工帐号收入

    eth.getBalance(eth.accounts[0])

    (4)查看此时区块链上的块数

    eth.blockNumber

    (5)查看区块信息

    eth.getBlock(160) 

    添加环境变量:

    1:执行 vi ~/.bash_profile,添加下面代码:

    export GETH=/projects/ethereum/geth

    export PATH=$PATH:$GETH

    2:执行 source ~/.bash_profile 使之生效。

    3:执行 geth version 查看是否生效

    相关文章

      网友评论

          本文标题:以太坊搭建步骤

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