余干区块链交流群

技术远光“攻城狮”手把手带你搭建私有链

远光软件2018-12-04 13:08:45

关注△区块链深度观察,后台回复〖课程〗送你一个惊喜


大家好,我是观察长,远光区块链“攻城狮


这次为大家带来的是一篇【手把手教你部署以太坊私有链】的技术原创文章。


通过前段时间的狂热,很多技术人才清醒的看到区块链背后真正的价值,基于以太坊区块链开发,由于在公链上开发测试需要支付一定的以太币,而且以太坊的测试链的挖矿以太币产出也不理想。


因此,为了能有更有效的(用不完的测试用以太币)进行开发验证测试,决定搭建自己的私有链,进行以太坊开发测试,认真看完后,你的资金真的可以翻10倍。


别忘了,文末有彩蛋!




- 前言 -


测试环境 :3台全节点服务器(虚拟机)

服务器系统:centos 6.8

服务器性能:4核,8G内存

以太坊客户端:geth  (go语言版本的客户端,目前版本已经到1.5.9) 




- Step1 -


部署主节点,在该节点上生成创世区块。

首先,通过制定的参数配置,在控制台启动geth服务。

geth --datadir data console 


geth服务启动成功的截图,通过参console启动一个带命令行的geth服务(后面会介绍geth服务的启动命令!) 接着,通过带有命令行的geth服务,注册一个新用户

 

>personal.newAccount("test1234”);【注册新用户的web3接口,后面会有接口的详细介绍】


“0xfc3147e7d648b3513f3fbad853ddc242e7f003ba”  【注册成功后为新用户生成的地址address,对于以太坊来说也是公钥,记住这个地址,用于配置创世节点的时候需要】

 

新用户创建成功后,输入命令“exit” 退出服务,如果不退出,geth服务会自动同步公链区块,对于我们搭建私有链是不需要同步公有链的。 




- Step2 -


然后,通过创世节点配置配置文件(genesis.json),初始化创世节点。初始化配置文件内容如下: 


{ "alloc{ "0xfc3147e7d648b3513f3fbad853ddc242e7f003ba": { //创世节点的初始用户地址,我们刚创建的用的地址 

  

 "balance":“1000000000000000000000000000000” //初始化账户的以太币,1(eth) = 1^18(wei) (eth:以太币的基本单位, wei:以太币的最小单位)   }}


"nonce":"0x0000000000000042”, //随机数, 用于挖矿,详细信息可以参考以太坊黄皮书


"difficulty": "0x020000”, //设置区块挖矿复杂度,设置太高产出区块的速度会比较慢,设置太低产出垃圾区块(分叉)的概率会比较高


"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000”, // 与nonce一起配合用于挖矿,详细信息可以参考以太坊黄皮书


"coinbase":"0x0000000000000000000000000000000000000000”, // coninbase地址

  "timestamp": "0x00”, //时间戳


"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000”, //创世区块父区块的地址,由于是创世区块,没有父区块,所以为0


"extraData":"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa”, //备注信息


"gasLimit": “0x4c4b40” // 设置gas的消耗总量限制,用于限制区块能包含交易的信息综合,这里我们用于私链测试开发,所以填最大值。}




- Step3 -


 了解创世节点配置文件的参数以后,我们通过命令来初始化创世节点吧!


geth --datadir data init genesis.json


如图,我们的创世节点的舒适化就完成了,现在我们来启动创世节点吧!

 

geth --datadir data —mine —etherbase 0 --minerthreads 2 --port 30303 --rpc --rpcapi "db,eth,net,web3,personal" --rpcaddr 10.*.129.* --rpccorsdomain “*” console


注意:记住红框的信息,我们需要在从节点添加监听地址来同步主节点的区块!


如图,我们的创世区块的主节点已经启动了!这时候我们来查看一下创世节点的一些信息


eth.accounts 查看当前geth服务下的账户eth.getBalacne(“0xfc3147e7d648b3513f3fbad853ddc242e7f003ba”) 查询指定账户的余额信息,单位为最小单位wei

 

至此,我们的创世节点已经成功启动!



- Step4 -


接下来介绍一下启动命令的参数:


参数密令

说明

datadir  data 

创建区块链保存地址,data 就是在当前目录下创建data文件夹来保存区块链的信息 

 mine 

启动挖矿的命令

etherbase

选择挖矿的账号,0只账号列表的第一个账号(在geth控制台,我们可以使用eth.accounts命令来查看当前geth服务下的账户列表) 

minerthreads2 

创建区块链保存地址,data 就是在当前目录下创建data文件夹来保存区块链的信息 

nat“extip

10.37.129.2"


设置NAT端口映射,参数填启用geth服务机器的地


port 30303 


设置服务的网络监听端口

rpc 

启动rpc通信服务,可以通过rpc接口访问

rpcapi 

设置允许使用rpc服务的客户端,如参数中的

port 30303 


设置服务的网络监听端口

rpcaddr 10.37.139.2 


设置rpc服务的地址,参数填启用geth服务机器

console 


启用服务控制台,可以通过控制台使用db、eth、net、web3、personal命令 



- 下节内容 -


了解基本参数以后,下节内容将通过平台转发给你:


关注二维码,后台回复 “参加” 领取

关注二维码,后台回复 “参加” 领取

关注二维码,后台回复 “参加” 领取



下节内容:【 部署从节点,并且同步主节点的区块信息 】【启动参数密令】【geth客户端下载地】【geth客户端启动参数说明】的操作说明


PS:本次仅限300人参加,由远光研究院高级技术顾问带大家交流指导


友情链接

Copyright © 余干区块链交流群@2017