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

简介:

零、概述

版本号: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如需转载请自行联系原作者


战狐

相关文章
|
Dart 前端开发 JavaScript
Web3.js私钥签名合约调用裸交易
交易签名是你向区块链证明自己身份的唯一途径,这也是使用以太坊的Web3开发库时需要理清的一个基本概念。在这个教程中,我们讲学习如何使用Web3.js来完成以太坊智能合约调用交易的签名与提交,适用于包括ERC20代币合约在内的所有以太坊合约的调用。
2591 0
|
11月前
|
机器学习/深度学习 自然语言处理
掩码语言模型(MLM)
【10月更文挑战第6天】掩码语言模型(MLM)
|
10月前
|
存储 监控 Linux
在 CentOS 7 中如何进行磁盘分区和挂载的最佳实践
本文介绍了在 CentOS 7 中如何进行磁盘分区和挂载的最佳实践。通过合理规划和管理服务器磁盘空间,可以提高系统的稳定性和可维护性。具体步骤包括确认未使用的硬盘、创建分区、格式化分区、创建挂载点、临时和永久挂载分区,以及最佳实践分享。这些操作不仅有助于充分利用磁盘资源,还能提升服务器性能和可靠性。
288 1
|
10月前
|
安全 程序员 测试技术
推荐7款程序员常用的API管理工具
本文所有工具都已收录至Awesome Tools,程序员常用高效实用工具、软件资源精选,办公效率提升利器。
660 3
|
人工智能 文字识别 API
20行代码教你如何批量提取图片中文字
大家好,我是志斌~ 之前志斌在考研的时候遇到了一个问题,就是要将图片中的文字给提取出来,当时是J哥帮忙搞出来的,现在已经考完研了,也学会了提取方式,现在来给大家分享一下。
1114 0
20行代码教你如何批量提取图片中文字
|
Java 测试技术
Java实现自动贩卖机/售货机
Java实现自动贩卖机/售货机
1344 0
Java实现自动贩卖机/售货机
|
供应链 安全 物联网
区块链技术的应用场景和优势
区块链技术的应用场景和优势
1312 0
|
NoSQL Linux Redis
centos7 systemctl 启动 Redis 失败
转自:http://sloger.info/posts/systemd-failed-to-start-redis-in-gentoo 今天启动 Redis 时阻塞很长时间,之后显示启动失败,启动状态如下。
5995 0
【C++库函数之求最大公约数函数_ _gcd(a,b)】
【C++库函数之求最大公约数函数_ _gcd(a,b)】
【C++库函数之求最大公约数函数_ _gcd(a,b)】
|
机器学习/深度学习 编解码 测试技术
Normalized RMSE(Root Mean Square Error)
ECMWF是欧洲中期天气预报中心(European Centre for Medium-Range Weather Forecasts
2368 0