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

以太坊搭建步骤

作者: 传输技术控 | 来源:发表于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 查看是否生效

相关文章

  • 以太坊搭建步骤

    网上有很多关于如何搭建以太坊的文章,笔者测试了一下,几乎每一篇文章都无法完整的将以太坊搭建起来,所以笔者将自己如何...

  • 以太坊私有链搭建

    title: 以太坊私有链搭建date: 2017-12-20 13:45:44tags: [以太坊,区块链,搭建...

  • 第3章 以太坊应用开发基础

    以太坊开发环境搭建 配置以太坊环境** 安装go环境因为以太坊是Go语言进行开发的,所以要在本机上安装以太坊,首先...

  • 搭建Truffle

    title: 以太坊环境搭建-Truffle安装tags: Truffle Truffle是目前最流行的以太坊开发...

  • 常用MAC技巧---搭建以太坊私联过程经验

    完整的MAC搭建私链,参考如下三篇博客即可,再次不再赘述。 区块链学习一 MAC上以太坊私有链搭建 快速搭建以太坊...

  • 区块链学习一 MAC上以太坊私有链搭建

    区块链学习一 MAC上以太坊私有链搭建 标签(空格分隔): 区块链 MAC上以太坊私有链搭建 go-ethereu...

  • Ethereum-1 Create a private chai

    以太坊网络类型 ​ 目标 ​ 本地搭建以太坊私有网络并进行挖矿与交易 所需软件 GethThis is the...

  • 以太坊私有链搭建步骤

    保证您更舒适的阅读体验和持续更新,本文已转移至我的个人博客,请您访问http://anemone.top/以确保您...

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

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

  • 以太坊主网同步踩过的坑

    之前是用geth和Ethereum Wallet搭建了自己的以太坊私有网络(搭建自己的以太坊网络)并在上面部署了智...

网友评论

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

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