区块链学习日记——搭建私有链

本文详细介绍了如何在已安装go-ethereum和solc的前提下搭建私有链,包括创建创世区块、配置节点、挖矿等步骤。通过实例操作,帮助读者理解私有链的基本原理和技术实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

私有链的搭建及问题汇总

学习记录


创世区块

在已经安装好go-ethereum和solc的前提下,在默认目录在建立一个文件夹作私有链测试用。
进入该文件夹,然后创建创世区块genesis.json。可以复制go-ethereum下的readme文档中,有关创世区块的例子。
官方文档


这里是创世区块各项含义
这里各项参数的含义是:

参数名称参数含义
mixhash与nonce配合用于挖矿,由上一个区块的一部分生成的hash。注意他和nonce的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件
noncenonce就是一个64位随机数,用于挖矿,注意他和mixhash的设置需要满足以太坊的Yellow paper, 4.3.4. Block Header Validity, (44)章节所描述的条件。
difficulty设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度,便于测试
alloc用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以
coinbase矿工的账号,随便填
timestamp设置创世块的时间戳
parentHash上一个区块的hash值,因为是创世块,所以这个值是0
extraData附加信息,随便填,可以填你的个性信息
gasLimit该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。

把它保存为一个genesis.json文件。
使用以下命令初始化。

geth --datadir "cdata1" init genesis.json

这里我们准备建立两个节点验证私有链。所以他们必须有相同的创世区块。

geth --datadir "cdata2" init genesis.json

启动节点

启动节点时由于命令比较长,所以我们把它写成一个.sh 文件。这里我写了一个start.sh 文件如下。

geth --identity "newETH" --rpc --rpccorsdomain "*" --datadir "cdata1" --port 30303 --rpcapi "db,eth,net,web3" --networkid 999 --rpcport 8080 console

这里各项参数的含义是:

参数名称参数含义
identity区块链的标示,随便填写,用于标示目前网络的名字
init指定创世块文件的位置,并创建初始块
datadir设置当前区块链网络数据存放的位置
port网络监听端口
rpc启动rpc通信,可以进行智能合约的部署和调试
rpcapi设置允许连接的rpc的客户端,一般为db,eth,net,web3
networkid设置当前区块链的网络ID,用于区分不同的网络,是一个数字
console启动命令行模式,可以在Geth中执行命令

在当前文件夹执行后,启动节点1


这里写图片描述


同样的道理,运行另一个终端开启节点2,但是这里的启动文件要变动,port 改为30304 ,rpcport 改为8081 ,datadir 改为cdata2.


这里写图片描述


节点挖矿

启动节点后分别在俩个节点各建立一个新账户。

personal.newAccount('123456')

这时默认情况下两个节点的admin.peer 都为空。
这时使用2节点添加1节点。
使用

admin.nodeInfo

得到节点1的信息
这里写图片描述


在2节点使用admin.addPeer(“节点信息”)

admin.addPeer("这里是1节点的enode")

返回true,并用admin.peers 查看是否互相链接。
然后节点2开始挖矿,由于我设置的挖矿难度小,所以很容易就能挖到块。
并且这时候节点1也能显示正在验证同步的区块。
这里写图片描述
关于区块链的私有链搭建暂时先学到这。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值