最近有点背...

以太坊学习1—搭建以太坊私有链

关于以太坊

关于以太坊,我刚开始是从区块链的一些开源项目得知的。我们知道,比特币仅是作为数字货币的功能,是最开始区块链技术的应用(区块链1.0)。而以太坊作为公共的区块链平台,是一个去中心化的分布式账本技术的应用平台。智能合约的编写,让它可以实现更多元化的服务,所以我们更愿意称它为区块链2.0。

搭建环境

  • CentOS7.2
  • 以太坊客户端go-ethereum

    安装以太坊

    安装yum源

    1
    rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm

安装golang

1
yum install golang

这里写图片描述

编译以太坊

上传下载的以太坊客户端,并解压到eth目录,进入解压后的目录。执行make命令进行编译。

这里写图片描述

执行编译后,出现build/bin目录,表示成功。

这里写图片描述

初始化以太坊

创始文件genesis.json

进入build/bin目录下,新建创始文件genesis.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x80000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc" : {}
}

这里写图片描述

需要注意的地方

比如初始化区块文件genesis.json,在geth1.5版本以上,需要添加”config”:{};extraData需要填写16进制0x开头编码,否则会报这个错误–json: cannot unmarshal hex string without 0x prefix into Go struct field Gen..

初始化

1
./geth init genesis.json

这里写图片描述
这时会生成默认存放钱包文件目录keystore。
这里写图片描述

启动以太坊

1
./geth --rpc --rpcapi personal,db,eth,net,web3 --networkid 666666 console

这里写图片描述

表明以太坊启动成功。

学习展望

环境的搭建,是学习任何技术的开始。搭建过程中的一些参数的意思,如何设定值,都是之后需要学习的范围,目前只需要知道如何搭建就好。
环境搭建完毕后,可以尝试创建钱包用户,挖矿,编写部署智能合约等等,之后也会继续记录。