1、 环境准备:Win10 64位安装 VM VirtualBox,操作系统版本:

CentOS-7-x86_64-Everything-1611.iso(7.71G)。

切换root账号,方便安装程序

2、 安装Golang 1.9以上版本,yum安装的可以是1.8.3,所以要手动下载安装

国内镜像:https://studygolang.com/dl

#cd /usr
#wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz
# tar -C /root -xzf go1.10.1.linux-amd64.tar.gz
# cd /root; vi ~/.bashrc
export GOPATH=/root/Go
export GOROOT=/root/go
export PATH=$PATH:$GOROOT/bin
# source ~/.bashrc
# go version
go version go1.10.1 linux/amd64

3、 安装go版本的以太坊源码

#cd /usr
#git clone https://github.com/ethereum/go-ethereum
#cd go-ethereum
#make geth

4、 初始化一个创世区块

初始化创世区块时,要先创建一个genesis.json文件,utf-8编码,内容如下:

{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x40000",
"extraData" : "",
"gasLimit" : "0xffffffff",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc": { }
}

  

参数名称

参数描述

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的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。

  

接下来,我们使用geth init ./inti.json --datadir "./chain"命令,来进行创世区块的初始化,当前区块链网络数据存放的位置会保存在chain目录中:

#cd /usr/go-ethereum/bulid/bin
# ./geth --datadir "./chain" init genesis.json

5、 启用私有链

参数名称

参数描述

datadir

设置当前区块链网络数据存放的位置

console

启动命令行模式,可以在Geth中执行命令

nodiscover

私有链地址,不会被网上看到

使用以下命令,启用私有链:

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

./geth \
--datadir "./chain" \
--nodiscover \
console 2>>eth_output.log    

 在当前目录执行tail -f eth_output.log,可以看到输出日志。

后面章节中的命令,都是在启动私有链后的Geth javascript console中操作

6、 帐户的添加和查看

查看帐户,可以看到当前帐户是空的

> web3.eth.accounts
[] 
 创建帐户的方式有两种,第一种创建帐户时直接初始化密码
> web3.personal.newAccount("")
"0x741d379e702f95ea8fdf96df9d8aa34e31b011e9"
"0xe0b0bf3b64e238814dede73eca9f16e51f386819" 

其中返回的0x741d379e702f95ea8fdf96df9d8aa34e31b011e9是帐户,123456是帐户的密码

  
  第二种方法是先创建账户,然后输入密码

> web3.personal.newAccount()
Passphrase:
Repeat passphrase:
"0x3b0ec02b4193d14abdc9cc5b264b5e3f39624d70"

  这时我们再查看帐户,能够看到刚才创建的两个帐户已经存在了

> web3.eth.accounts
["0xbe323cc4fde114269a9513a27d3e985f82b9e25d", "0x3b0ec02b4193d14abdc9cc5b264b5e3f39624d70"]

7、 用到的命令汇总:

./geth --datadir "./chain" --nodiscover console >>eth_output.log
web3.eth.accounts
web3.personal.newAccount("")
miner.start() //办公电脑挖矿较慢
// miner.start(1) 返回 null时,执行以下2语句:
eth.coinbase
miner.setEtherbase(eth.coinbase) miner.stop()
web3.eth.getBalance("0x741d379e702f95ea8fdf96df9d8aa34e31b011e9")
acc0 = web3.eth.accounts[]
acc1 = web3.eth.accounts[]
acc2 = web3.eth.accounts[]
web3.eth.getBalance(acc0)
web3.fromWei(web3.eth.getBalance(acc0)) 

8、 Linux命令

查看当前端口:netstat –ntlp

杀死指定进程:kill -9 pid

查看日志:tail -f eth_output.log

9、 参考教程:http://www.cnblogs.com/lion.net/p/7809862.html

CentOS7搭建以太坊私有链的更多相关文章

  1. 转:使用 Go-Ethereum 1.7.2搭建以太坊私有链

    使用 Go-Ethereum 1.7.2搭建以太坊私有链 目录 [toc] 1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底 ...

  2. Mac环境搭建以太坊私有链

    原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链.在mac上搭建环境主要需要以下步骤. geth安装 geth是go-ethereum的简写,是一个用go语言编 ...

  3. 使用 Go-Ethereum 1.7.2搭建以太坊私有链

    目录 [toc] 1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球 ...

  4. 区块链--Ubuntu上搭建以太坊私有链

    1.搭建私链所需环境 操作系统:ubuntu16.04,开虚拟机的话要至少4G,否则会影响测试挖矿时的速度 软件: geth客户端 Mist和Ethereum Wallet:https://githu ...

  5. docker 搭建以太坊私有链搭建

    最近区块链,火得不行,身边也有朋友准备玩这个,说是搭了一个星期,没有把环境搭建起来,叫我帮忙看看环境怎么搭建 于是我找到了官方的地址 https://github.com/ethereum/go-et ...

  6. 区块链入门(2):搭建以太坊私有链(private network of ethereum),以及挖矿的操作..

    在做一些测试工作的时候, 为了方便控制以及更快的进入真正的测试工作,可能需要搭建一个私有的以太坊网络. 而以太坊节点之间能够互相链接需要满足1)相同的协议版本2)相同的networkid,所以搭建私有 ...

  7. Mac搭建以太坊私有链

    记录过程与问题 一.安装 以go版本的ethereum进行安装 brew tap ethereum/ethereum brew install ethereum # 如果希望基于ethereum的de ...

  8. ubuntu系统搭建以太坊私有链

    1.安装curl.git apt-get update apt-get install git apt-get install curl 2.安装go curl -O https://storage. ...

  9. 区块链学习:Windows下搭建以太坊私有链环境

    一:安装geth客户端 Windows要求必须是64位系统,从官方网站下载编译好的win64客户端,下载解压后只有一个Geth.exe问价,运行安装即可,下载地址如下: https://github. ...

随机推荐

  1. 2017-9-8-李明Linux:Linux应用与发展

    1965年,MIT.通用电气&贝尔实验室联合开发分时操作系统Multics,没有项目管理概念和追求目标过于庞大导致项目失败:1969年,参加过该项目的贝尔实验室成员肯 ·汤普森对自己开发的游戏 ...

  2. N皇后问题(状态压缩实现)

    题目链接~~> 这题用 dfs()N范围一大了过不了,需要打表,用状态压缩可以状态压缩真是太强大了. 状态压缩 1: 在状态压缩中,通常用 ( 1 << N ) - 1 来表示最大状 ...

  3. 学不动了,ECMAScript2018都来了

    原文:ECMAScript regular expressions are getting better! 作者: Mathias Bynens: Google V8引擎开发者 译者:Fundebug ...

  4. PhotoshopCC 2017安装破解 + cuterman

    之前安装了PhotoshopCC 2017版本的软件,但是绿色版的(安装简介.使用方便).但是在随着Adobe公司对设计的不断追求和工具的不断更新,更加强大.更加优秀的设计插件和工具不断出新,最近朋友 ...

  5. 编程菜鸟的日记-初学尝试编程-编写函数实现strcmp功能

    #include <iostream>using namespace std;int mystrcmp(const char *str1,const char *str2){ assert ...

  6. Yii2 表单(form)

    表单 1.表单的创建 在 yii 中主要通过 yii\widgets\ActiveForm 类来创建表单 ActiveForm::begin() 不仅创建了一个表单实例,同时也标志着表单的开始. 放在 ...

  7. helm-chart3,函数和管道

    目录 一个简单的函数 管道 和几个函数 一个简单的函数 quote : 引入字符串,具体看示例: apiVersion: v1 kind: ConfigMap metadata: name: {{ . ...

  8. js float运算精度问题

    先放个前辈的文章:JavaScript数字精度丢失问题总结 今天遇到了19.99*100的问题,答案不等于1999,因为在javascript中浮点数的计算是以2进制计算的.自己写了一波解决方法(不能 ...

  9. 【组合&取补集】数三角形 @CQOI2014/BZOJ3505/upcexam3843

    http://exam.upc.edu.cn/problem.php?id=3843&csrf=8oK86t2oHSgi3Q4SX3qOJGeENe6pfXri 时间限制: 1 Sec 内存限 ...

  10. Listener(2)—案例

    ServletContext的事件监听器,创建:当前web应用被加载(或重新加载)到服务器中,销毁:当前web应用被卸载 import javax.servlet.ServletContextEven ...