以太坊作为领先的智能合约平台,其公链虽然功能强大,但在开发、测试和学习阶段,搭建一个本地或私有的以太坊网络(私链)往往更为便捷和高效,本文将详细介绍如何在Ubuntu操作系统上从零开始搭建一个以太坊私链,涵盖环境准备、Geth安装、创世区块配置、节点启动以及常用交互命令。

环境准备

在开始之前,确保你的Ubuntu系统已经满足以下基本条件:

  1. 操作系统:推荐使用Ubuntu 20.04 LTS或更高版本,本文以Ubuntu 20.04为例。
  2. 硬件要求:私链对硬件要求不高,普通PC即可,建议至少2GB内存,10GB以上可用磁盘空间。
  3. 网络连接:虽然私链可以离线运行,但初始安装和更新软件需要网络连接。
  4. 用户权限:建议使用具有sudo权限的用户进行操作,避免直接使用root用户。

更新系统软件包列表并安装必要的工具:

sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential curl git wget

安装Geth

Geth(Go-Ethereum)是以太坊官方的Go语言实现客户端,是最常用的以太坊节点软件之一,我们将通过二进制文件方式安装Geth,这是最简单快捷的方法。

  1. 下载Geth: 访问Geth官方发布页面:https://geth.ethereum.org/downloads/,选择适合Ubuntu系统的最新稳定版amd64二进制文件,或者使用以下命令直接下载(请替换为最新版本号):

    # 假设最新版本为1.13.6,请自行替换
    GETH_VERSION="1.13.6"
    wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.13.6-4e9e9586.tar.gz
  2. 解压并安装

    tar -xzf geth-linux-amd64-${GETH_VERSION}-4e9e9586.tar.gz
    sudo cp geth-linux-amd64-${GETH_VERSION}-4e9e9586/geth /usr/local/bin/
  3. 验证安装

    geth version

    如果看到Geth的版本信息,则表示安装成功。

创建创世区块文件

每个以太坊网络都有一个创世区块(Genesis Block),它是区块链的起点,私链需要自定义创世区块配置。

  1. 创建创世配置文件: 在你的用户目录下创建一个名为ethereum的文件夹,并在其中创建一个genesis.json文件:

    mkdir -p ~/ethereum
    cd ~/ethereum
    nano genesis.json
  2. 编辑创世配置文件: 在genesis.json文件中输入以下内容(这是一个基本的私链创世配置示例):

    {
      "config": {
        "chainId": 15,          // 私链的ID,必须是唯一的,避免与公链和其他私链冲突
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip155Block": 0,
        "eip158Block": 0
      },
      "alloc": {},             // 预分配的账户,这里留空,后续手动创建
      "coinbase": "0x0000000000000000000000000000000000000000",
      "difficulty": "0x4000",  // 初始难度,私链可以设置得很低以便快速挖矿
      "extraData": "",
      "gasLimit": "0xffffffff",
      "nonce": "0x0000000000000042",
      "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "timestamp": "0x00"
    }
    • chainId:非常重要,确保你的私链ID是唯一的。
    • difficulty:初始难度值越低,挖出区块越容易。

    保存并退出nano随机配图