geth访问节点_Geth的基本用法(2)-Geth搭建私有链及节点集群

本文介绍了如何在Linux系统上使用Geth搭建私有链,并详细阐述了私有链的初始化,包括调整参数和创建创世纪块。此外,还详细讲解了如何通过Geth设置节点集群,确保多节点共享数据,包括节点间建立连接和同步区块的过程。内容基于《区块链实战篇-以太坊DAPP开发实践》课程。
摘要由CSDN通过智能技术生成

1 私有链的搭建(Linux系统)

(1)为什么需要私有链?

定制:调整挖矿难度,区块大小,预分配以太币

(2)初始创世纪块

可以使用工具puppeth初始化创世纪块

(3)定义初始化创世纪块

{

"config": {

"chainId": 0,

"homesteadBlock": 0,

"eip155Block": 0,

"eip158Block": 0

},

"alloc" : {},//配置默认账号的默认金额

"coinbase" : "0x0000000000000000000000000000000000000000",

"difficulty" : "0x20000",//挖矿的难度

"extraData" : "",

"gasLimit" : "0x2fefd8",//控制区块gas的限制,值越大区块包含的交易越多

"nonce" : "0x0000000000000042",

"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

"timestamp" : "0x00"

}

(4)开始搭建私有链

>mkdir privatechain //为私有链创建目录

>cd privatechain //进入目录

>touch init.json //创建配置文件

>atom init.json //用atom打开文件

对文件进行修改,修改后的init.json文件如下图所示

上图中“alloc”中的账号是使用geth生成的

命令如下所示

>geth –datadir . account new

上图中alloc中的账号就是通过该命令行生成的,在生成账号过程中需要重复输入密码。生成的账号是保存在当前的目录下。

>geth init init.json –datadir . //初始化该私有链

>geth –datadir . console //启动创建好的私有链

>eth.accounts //查看一下账号的情况,账号是否是上述生成的账号

>eth.getBalance(“账户地址”) //查看余额

至此,私有链已经搭建好

>exit//退出控制台

2.geth搭建节点集群-多节点共享数据

(1)开启多个节点

本地测试注意点:

1. 每个节点都有不同的--datadir

2. 每个节点都要运行在不同的端口,使用--port及--rpcport控制

3. 每个节点ipc唯一或者禁用ipc,使用参数—ipcpath或者—ipcdisable

(2)多节点建立连接

Admin.addPeer

(3)搭建两个节点的数据共享

需要打开两个控制台终端,在上述基础之上,重新打开新的终端。

现在设置两个节点,那么两个节点的初始状态应该是一样的。使用私有链的创世纪块初始化第二个节点。

>mkdir private2 //为第二个节点建立目录

>cd private2 //打开第二个目录

>cp ../privatechain/init.json . //将创世纪块的文件拷贝到当前的private2中

>geth init init.json –datadir . //初始化第二个节点,初始化之后两个节点的初始状态都是一样

接下来要启动两个节点,先把第一个节点启动

>geth –datadir .console

接着启动第二个节点,这里应该注意两个节点的端口应该是不同的,第一个节点占用的是端口30303,所以第二个节点要换端口,使用30302端口

>>geth –datadir . –port 30302 console

至此,两个节点已经启动,但是两个节点都是各自工作的。

>net.peerCount //查看两个节点的连接状态,这时候两个节点都会显示0。

>admin.nodeInfo.enode//查看两个节点的节点信息

上图admin.nodeInfo.enode之后显示的是第二个节点的节点信息

>admin.addpeer(“enode://……”) //在第一个节点的控制台中添加第二个节点的节点信息

添加后如上图所示,这时候使用net.peerCount命令之后就会显示该节点与邻居节点进行连接。

两个节点如何同步区块

>miner.strat() //第一个节点开启挖矿

当第一个节点进行挖矿的时候,第二个节点会不断更新区块的信息,说明节点的集群搭建是成功的。

注:学习课程——《区块链实战篇-以太坊DAPP开发实践》 讲师:Tiny熊

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值