主页 > imtoken老版本 > 区块链——从零开始搭建以太坊私有链网络

区块链——从零开始搭建以太坊私有链网络

imtoken老版本 2023-04-12 07:30:53

1.搭建环境

1.Windows 764 位

2. Ubuntu 16.04 64位

2.安装工具-以太坊客户端

以太坊客户端用于访问以太坊网络并执行与账户管理、交易、挖矿和智能合约相关的操作。 目前有多种语言实现的客户端。 常用的go-ethereum客户端Geth是用Go语言实现的,支持接入以太坊网络,成为一个完整的节点。

1.Windows 7环境下安装Geth客户端

下载链接:

下载完成后以太坊个人链,按照引导步骤进行安装。

Geth在安装时会直接添加到系统环境变量中。 安装完成后打开cmd输入geth version查看是否安装成功。

以太坊个人链_以太坊搭建私链_以太坊 布署 公有链

1.png

2.在Ubuntu 16.04环境下安装Geth客户端

安装必要的工具包:

sudo apt-get install software-properties-common

添加以太坊源:

添加-apt-repository -y ppa:ethereum/ethereum

易于获取更新

安装去以太坊:

sudo apt-get 安装以太坊

安装完成后,使用geth版本查看是否安装成功。

Tips:本文直接使用Geth的命令控制台进行操作,无需安装以太坊钱包。 以太坊钱包是基于以太坊客户端开发的图形化操作工具,可以让用户更方便的管理账户和交易。 常用的以太坊钱包有以太坊钱包和Mist。 下载链接:

以下操作不区分系统环境,Windows 7和Ubuntu 16.04下操作基本相同。

3.创建初始文件

创建以太坊私有链需要定义自己的创世块,创世块信息以JSON格式写入配置文件。 首先将以下内容保存到一个 JSON 文件中,命名为 genesis.json。

{  
  "config": {  
    "chainID": 6666,  
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "alloc": {},
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x400",
  "extraData": "0x00",
  "gasLimit": "0x2fefd8",
  "nonce": "0xdeadbeefdeadbeef",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

其中,chainID指定了独立的区块链网络ID。 连接到其他节点时将使用网络 ID。 以太坊公网网络ID为1,为了不与公链网络冲突,运行私链节点时必须指定自己的网络ID。 不同 ID 网络的节点不能相互连接。 配置文件还设置了当前挖矿难度difficulty、区块Gas消耗上限gasLimit等参数。

4. 初始化:写入创世块

在系统上新建目录mychain,将之前创建的genesis.json保存在该目录下,新建目录mydata存放区块链数据。 此时目录结构为:

我的链

├── 我的资料

└── 创世纪.json

进入mychain目录,执行命令:

geth --datadir mydata init genesis.json

运行上述命令会读取genesis.json文件,并根据其内容将创世块写入区块链。 如果看到如下输出,则初始化成功。

以太坊个人链_以太坊搭建私链_以太坊 布署 公有链

2.png

初始化成功后以太坊个人链,会在数据目录mydata下生成geth和keystore两个文件夹。 其中,区块数据存放在geth/chaindata,账户数据存放在keystore。

5.启动私有链

初始化完成后,你就会拥有自己的私有链,然后就可以启动自己的私有链节点,进行一些操作了。 在mychain目录下打开终端,输入以下命令启动节点:

geth --identity "TestNode" --rpc --rpcport "8545" --datadir mydata --port "30303" --networkid 6666 --nodiscover console

运行上述命令后,区块链节点启动,进入节点控制台:

...

欢迎使用 Geth JavaScript 控制台!

实例:Geth/TestNode/v1.8.5-stable-cbdaa0ca/linux-amd64/go1.10.1

模块:admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

进入控制台后,即可对私有链进行创建账户、交易、挖矿、部署智能合约等一系列操作。 具体内容将在下一篇以太坊私链Geth控制台操作教程中介绍。