CentOS7搭建以太坊私有链
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搭建以太坊私有链的更多相关文章
- 转:使用 Go-Ethereum 1.7.2搭建以太坊私有链
使用 Go-Ethereum 1.7.2搭建以太坊私有链 目录 [toc] 1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底 ...
- Mac环境搭建以太坊私有链
原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链.在mac上搭建环境主要需要以下步骤. geth安装 geth是go-ethereum的简写,是一个用go语言编 ...
- 使用 Go-Ethereum 1.7.2搭建以太坊私有链
目录 [toc] 1.什么是Ethereum(以太坊) 以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约.开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球 ...
- 区块链--Ubuntu上搭建以太坊私有链
1.搭建私链所需环境 操作系统:ubuntu16.04,开虚拟机的话要至少4G,否则会影响测试挖矿时的速度 软件: geth客户端 Mist和Ethereum Wallet:https://githu ...
- docker 搭建以太坊私有链搭建
最近区块链,火得不行,身边也有朋友准备玩这个,说是搭了一个星期,没有把环境搭建起来,叫我帮忙看看环境怎么搭建 于是我找到了官方的地址 https://github.com/ethereum/go-et ...
- 区块链入门(2):搭建以太坊私有链(private network of ethereum),以及挖矿的操作..
在做一些测试工作的时候, 为了方便控制以及更快的进入真正的测试工作,可能需要搭建一个私有的以太坊网络. 而以太坊节点之间能够互相链接需要满足1)相同的协议版本2)相同的networkid,所以搭建私有 ...
- Mac搭建以太坊私有链
记录过程与问题 一.安装 以go版本的ethereum进行安装 brew tap ethereum/ethereum brew install ethereum # 如果希望基于ethereum的de ...
- ubuntu系统搭建以太坊私有链
1.安装curl.git apt-get update apt-get install git apt-get install curl 2.安装go curl -O https://storage. ...
- 区块链学习:Windows下搭建以太坊私有链环境
一:安装geth客户端 Windows要求必须是64位系统,从官方网站下载编译好的win64客户端,下载解压后只有一个Geth.exe问价,运行安装即可,下载地址如下: https://github. ...
随机推荐
- mongodb副本集搭建
1.创建目录 mkdir -p /data/r1 /data/r2 /data/r3 2.启动: bin/mongod --config ../mongod.conf --replSet r1 b ...
- vue插槽,也就是子页面、父页面相互传值的另一写法
父页面: <template> <div class="parent"> <p>父组件</p> <child> < ...
- 创建触发器(trigger)
创建触发器 DROP TRIGGER IF EXISTS `ins_table_name`; DELIMITER ;; CREATE TRIGGER `ins_table_name` AFTER IN ...
- 设置字体格式,加粗,regular,light
设置文字大小和字体的途径有两个: 第一种,直接使用xib设置 , , 第二种,使用代码 Label.font = [UIFont fontWithName:.f];//加粗 Label.fo ...
- 卷积cnn总结
阅读了很多篇文章后,还是觉得有两篇文章很好,所以基本上就吸收搬过来了. 从神经网络到卷积神经网络(CNN) 我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢? 其实卷积神经网络依旧是层 ...
- python之socket编程4
1 socketserver实现并发 基于tcp的套接字,关键是两个循环,一个通信循环,一个链接循环 Socketserver的 模块中分成两类: Server类(解决连接问题) Request类(解 ...
- GMA Round 1 数列求单项
传送门 数列求单项 在数列{$a_n$}中,$a_1=-\frac{1}{4}$,$\frac{1}{a_{n+1}}+\frac{1}{a_n}=\begin{cases}-3(n为偶数)\\3(n ...
- jeffy-vim-v3.1.tar.gz
下载链接: https://files.cnblogs.com/files/pengdonglin137/jeffy-vim-v3.1.tar.gz 1. 使用sublimemonokai配色 2. ...
- springboot获取properties文件的配置内容(转载)
1.使用@Value注解读取读取properties配置文件时,默认读取的是application.properties. application.properties: demo.name=Name ...
- Spring Boot tomcat
定制内嵌 Tomcat 设置内嵌Tomcat的端口 Spring Boot 内嵌的 Tomcat 服务器默认运行在 8080 端口.如果,我们需要修改Tomcat的端口,我们可以在 src/main/ ...