搭建基于以太坊的私有链环境

简介:

零、概述

版本号:Ubuntu-16.04 

              ethereum-1.6.0-stable

               go - 1.7.4


一、Ubuntu下安装geth

1
2
3
4
sudo  apt-get  install  software-properties-common
sudo  add-apt-repository -y ppa:ethereum /ethereum
sudo  apt-get update
sudo  apt-get  install  ethereum

二、创建初始化文件

vim 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
     },
     "nonce" : "0x0000000000000042" ,
     "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000" ,
     "difficulty" "0x4000" ,
     "alloc" : {},
     "coinbase" : "0x0000000000000000000000000000000000000000" ,
     "timestamp" "0x00" ,
     "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000" ,
     "extraData" "" ,
     "gasLimit" : "0x0000ffff"
}


参数

描述

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


三、启动

1
geth --identity  "emaretherum"  --rpc  --rpccorsdomain  "*"  --datadir= "/data/ethchain"  --ipcdisable --port 30301 --rpcport 8101 console

参数

描述

identity

区块链的标示,随便填写,用于标示目前网络的名字

init

指定创世块文件的位置,并创建初始块

datadir

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

port

网络监听端口

rpc

启动rpc通信,可以进行智能合约的部署和调试

rpcapi

设置允许连接的rpc的客户端,一般为db,eth,net,web3

networkid

设置当前区块链的网络ID,用于区分不同的网络,是一个数字

console

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

nodiscover

禁止被网络中其它节点发现,需要手动添加该节点到网络

verbosity

打印详细的日志信息

四、debug 日志参数

1
-verbosity 6


官方文档

启动私有网络或本地集群

https://github.com/ethereum/go-ethereum/wiki/Setting-up-private-network-or-local-cluster

监控

https://github.com/ethereum/go-ethereum/wiki/Setting-up-monitoring-on-local-cluster

快速创建本地集群

https://github.com/ethersphere/eth-utils

本文转自银狐博客51CTO博客,原文链接http://blog.51cto.com/foxhound/1921181如需转载请自行联系原作者


战狐

相关文章
|
7月前
|
存储 前端开发 Go
ipfs使用二进制文件部署私有链
ipfs使用二进制文件部署私有链
|
存储 供应链 前端开发
智能合约Dapp系统链上开发部署源码规则解析
智能合约Dapp系统链上开发部署源码规则解析
|
存储 区块链 Python
以太坊中如何获取另外一个智能合约部署的合约地址?
如何获取另外一个智能合约部署的合约地址? 我正试图从另一个工厂合约中签智能合约,然后重新部署新智能合约的地址。然而,它返回的地址是交易哈希值而不是合约地址。
2343 0
|
JSON Ubuntu 区块链
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
508 0
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
|
Linux Go 区块链
CentOS7 搭建以太坊私有链
CentOS7 搭建以太坊私有链
351 0
|
Web App开发 区块链
Remix无法连接私有链问题解决方案
Remix无法连接私有链问题解决方案
493 0
|
Rust JavaScript 前端开发
区块链开发(八)以太坊不同语言客户端地址
区块链开发(八)以太坊不同语言客户端地址
133 0
|
Go 区块链 iOS开发
搭建以太坊私有链
本文介绍在mac上搭建以太坊私有链。
3314 0
|
区块链 开发工具 git
|
测试技术 区块链 数据安全/隐私保护
10分钟完成阿里云环境搭建以太坊私有链
10分钟快速搭建以太坊私有链
5026 0