以太坊作为目前最知名的智能合约平台之一,其公有链虽然功能强大,但在开发、测试或特定业务场景下,我们往往需要一个独立、可控的环境,这时私有链便派上了用场,本文将详细介绍如何在CentOS 7操作系统上,从零开始搭建一个以太坊私有链。

准备工作

  1. 操作系统:CentOS 7 64位
  2. 硬件要求:至少2GB内存,建议10GB以上可用磁盘空间(根据节点数量和需求调整)。
  3. 网络连接:确保服务器可以访问互联网,以便下载必要的软件包。
  4. 用户权限:建议使用具有sudo权限的非root用户进行操作,以增加安全性。

环境准备

  1. 更新系统 确保系统软件包是最新的:

    sudo yum update -y
  2. 安装必要的软件包 我们需要安装gitmakegcc等编译工具,以及wget

    sudo yum install -y git make gcc-c++ wget
  3. 安装Go语言环境 以太坊客户端(如geth)是用Go语言编写的,因此需要先安装Go。

    • 访问Go官方下载页面(https://golang.org/dl/)获取最新的Linux amd64版本的下载链接,以下以Go 1.19.5为例(请根据实际情况替换为最新版本):
      wget https://golang.org/dl/go1.19.5.linux-amd64.tar.gz
    • 解压并安装Go到/usr/local
      sudo tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz
    • 配置Go环境变量,编辑~/.bash_profile文件:
      vi ~/.bash_profile

      在文件末尾添加以下内容:

      export GOROOT=/usr/local/go
      export GOPATH=$HOME/go
      export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

      保存并退出(wq),然后使配置生效:

      source ~/.bash_profile
    • 验证Go安装是否成功:
      go version

      应该显示类似 go version go1.19.5 linux/amd64 的信息。

安装并编译以太坊客户端(Geth)

Geth(Go-Ethereum)是以太坊官方的Go语言实现客户端,是最常用的以太坊节点软件之一。

  1. 获取Geth源码

    git clone https://github.com/ethereum/go-ethereum.git
  2. 编译Geth 进入go-ethereum目录,执行编译命令:

    cd go-ethereum
    make geth

    编译过程可能需要一些时间,完成后,geth可执行文件会生成在build/bin目录下。

  3. 将Geth添加到PATH(可选,但推荐) 为了方便使用,可以将geth所在目录添加到PATH环境变量:随机配图