网站首页 > Bitget资讯 >

私有区块链建立(区块链开发(一)搭建基于以太坊的私有链环境)

2024-10-29 10:10:44 Bitget资讯 阅读 0

通过本文所述方法和项目中的脚本,我们可以快速的搭建好自己的私有链进行区块链开发测试,本文基于Windwos下以太坊技术进行搭建。

一、安装Windows下Geth客户端

Windows必须64位系统,从官方网站下载编译好的win64客户端,解压缩即可运行,下载地址如下:

https://github.com/ethereum/go-ethereum/releases/

下载后,只有一个Geth.exe的文件。

安装图像化客户端Mist,依然是从官方地址下载编译好的客户端即可,下载地址:

https://github.com/ethereum/mist/releases/

下载解压缩后,Ethereum-Wallet即为以太坊图形化界面。

二、准备创世块文件

配置自己的创世块是为了区分公有链,同一个网络中,创世块必须是一样的,否则无法联通。

新建文件piccgenesis.json,输入如下内容并保存

{

"nonce":"0x0000000000000042",

"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"difficulty": "0x4000",

"alloc": {},

"coinbase":"0x0000000000000000000000000000000000000000",

"timestamp": "0x00",

"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "PICC GenesisBlock",

"gasLimit":"0xffffffff"

}

解释一下各个参数的作用:

nonce

nonce就是一个64位随机数,用于挖矿。

mixhash

与nonce配合用于挖矿,由上一个区块的一部分生成的hash。.

difficulty

设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度

alloc

用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。

coinbase

矿工的账号,随便填

timestamp

设置创世块的时间戳

parentHash

上一个区块的hash值,因为是创世块,所以这个值是0

extraData

附加信息,随便填,可以填你的个性信息

gasLimit

该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大。

三、启动私有链节点

启动Geth即可以启动以太坊的区块链,为了构建私有链 ,需要在Geth启动时加入一些参数,Geth参数含义如下:

identity

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

init

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

datadir

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

port

网络监听端口

rpc

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

rpcapi

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

networkid

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

console

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

1,在windows启动区块链节点

进入Windows下Geth的目录 ,放置配置好的piccgenesis.json文件,执行如下命令:

geth --datadir "%cd%\chain" init piccgenesis.json

创建数据存放地址并初始化创世块

geth--identity "PICCetherum" --rpc--rpccorsdomain "*" --datadir "%cd%\chain" --port"30303" --rpcapi"db,eth,net,web3" --networkid 95518 console

当看到Listening on [::]:30303和Welcome to the Geth JavaScript console!的提示,说明已经启动成功

四、使用节点创建账号

启动节点成功后,会进入Geth的命令行模式,输入如下命令

personal.newAccount()

系统会提示你输入账号密码,并确认,最后会显示一个新生成的账号。

五、启动Windows下私有链图形节点

首先按上面的步骤启动Geth并创建了账号,然后解压缩Ethereum-Wallet,运行Ethereum-Wallet.exe,即启动成功,如果区块链正常的话,会在右上角显示“PRIVATE-NET”,点击“LAUNCH APPLICATION”进入图形界面即可。

区块链开发(一)搭建基于以太坊的私有链环境

图形界面

六、连接其他节点

首先要知道自己的节点信息,在Geth命令行界面下输入命令,注意大小写

admin.nodeInfo

系统会显示

enode:"enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fcad17c161aa93d61bdbfb28ed152c143c7eb501db58bc63502a104a84b62d742@0.0.0.0:30303“

其中

enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fcad17c161aa93d61bdbfb28ed152c143c7eb501db58bc63502a104a84b62d742@0.0.0.0:30303

就是自己节点的信息,注意要把“0.0.0.0“换成你自己的IP。将这个信息发送给其他节点,在其他节点的命令行中输入:

admin.addPeer(‘enode://1e3c1727cd3bee9f25edeb5dbb3b880e03e41f8eec99566557f3ee0422734a8fcad17c161aa93d61bdbfb28ed152c143c7eb501db58bc63502a104a84b62d742@192.168.1.3:30303’)

如果添加成功,输入admin.peers会显示出新添加的节点。

七、使用节点进行挖矿

在Geth命令行界面下,输入miner.start()即启动挖矿,挖矿后,会不停刷屏,输入 miner.stop()即停止,不用管刷屏导致的命令不全,命令会正常执行。

到这一步,已经组建一个私有链的网络,可以像其他区块链一样不停的扩充这个网络。

相关内容

私有区块链建立(区块链开发(一)搭建基于以太坊的私有链环境)文档下载.: PDF DOC TXT

猜你喜欢