以太坊作为去中心化应用和智能合约的首选平台,其开发环境的搭建是每一位开发者的必修课,Linux系统,尤其是开发者友好的Ubuntu,因其稳定性和强大的命令行工具,成为了搭建以太坊开发环境的热门选择,本文将详细指导您如何在Ubuntu系统上,一步步搭建一个功能完善的以太坊开发环境。

第一步:系统准备与基础环境配置

在开始之前,确保您的Ubuntu系统已更新至最新版本,并安装了必要的开发工具。

  1. 更新系统包列表 打开终端(快捷键 Ctrl+Alt+T),首先更新系统的软件包列表:

    sudo apt update
  2. 安装基础开发工具 这些工具包括编译器、构建工具等,是后续开发的基础。

    sudo apt install -y build-essential curl software-properties-common

第二步:安装Node.js 与 npm

Node.js是运行以太坊JavaScript/TypeScript框架(如Hardhat, Truffle)的必要条件,我们推

随机配图
荐使用Node Version Manager (nvm)来安装,因为它可以轻松管理多个Node.js版本。

  1. 安装nvm 运行以下命令来安装nvm(请从nvm官方GitHub仓库获取最新的安装命令,以下命令为常见版本):

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

    安装完成后,关闭并重新打开终端,或运行以下命令使配置生效:

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
  2. 使用nvm安装Node.js 推荐安装LTS(长期支持)版本的Node.js,例如v18或v20。

    nvm install 20

    安装完成后,将其设置为默认版本:

    nvm use 20
    nvm alias default 20

    验证安装:

    node -v
    npm -v

第三步:安装Python 与 pip

以太坊的一些工具(如Web3.py)需要Python环境,Ubuntu 22.04通常默认安装了Python 3。

  1. 验证Python安装

    python3 --version

    如果未安装,请运行:

    sudo apt install -y python3 python3-pip
  2. 安装以太坊相关Python库(可选) 如果您计划使用Python进行开发,可以安装Web3.py库:

    pip3 install web3

第四步:安装Geth(以太坊官方客户端)

Geth(Go-Ethereum)是以太坊的官方Go语言实现,它是一个功能完整的以太坊节点,可以用于同步链数据、挖矿、发送交易等。

  1. 添加以太坊PPA源 为了安装最新稳定版的Geth,我们添加官方的PPA源:

    sudo add-apt-repository -y ppa:ethereum/ethereum
    sudo apt update
  2. 安装Geth

    sudo apt install -y ethereum
  3. 验证Geth安装

    geth version

第五步:安装Hardhat(现代以太坊开发框架)

Hardhat是一个用Node.js构建的智能合约开发、编译、测试和部署环境,是目前最受欢迎的开发框架之一。

  1. 创建项目目录

    mkdir my-eth-project
    cd my-eth-project
  2. 初始化Hardhat项目 在项目目录中运行:

    npx hardhat

    按照提示进行操作:

    • Which solidity version do you want to use?: 选择一个兼容的Solidity版本(8.20)。
    • Do you want to create a .gitignore?: 建议选择 Yes
    • What do you want to do? ...: 选择 Create a basic sample project 来快速开始。
  3. 安装依赖 Hardhat会自动创建一个contractsscriptstest目录,进入项目根目录,安装必要的依赖:

    npm install

第六步:安装其他常用工具

  1. 安装MetaMask浏览器插件 虽然这不是一个命令行工具,但MetaMask是开发过程中与DApp交互的必备钱包,请访问 MetaMask官网 下载并安装您浏览器的插件。

  2. 安装Remix IDE(可选) Remix是一个基于浏览器的智能合约编辑器,非常适合快速编写和测试简单合约,您可以直接访问 Remix IDE官网 使用,无需安装。

  3. 安装Truffle(可选) Truffle是另一个流行的智能合约开发框架,与Hardhat类似,如果需要,您可以在项目目录中安装:

    npm install -g truffle

第七步:连接与验证

让我们启动一个本地的私有测试网络,并部署一个简单的合约来验证环境。

  1. 启动一个私有Geth节点 在一个新的终端窗口中,运行以下命令启动一个开发节点:

    geth --dev --http

    这个命令会启动一个私有链,并监听默认的HTTP端口(8545),您会看到节点开始同步创世区块。

  2. 配置Hardhat连接到本地节点 Hardhat默认配置为连接到本地的http://127.0.0.1:8545,这与我们启动的Geth节点完美匹配,您可以在hardhat.config.js文件中确认或修改配置。

  3. 部署合约 打开第一个终端(Hardhat项目目录),运行部署脚本:

    npx hardhat run scripts/deploy.js --network localhost

    如果一切顺利,您将看到合约被成功部署到本地测试网络,并返回合约地址。

恭喜!您现在已经在Ubuntu系统上成功搭建了一个功能齐全的以太坊开发环境,这个环境包括了:

  • 后端节点: Geth,用于运行区块链。
  • 开发框架: Hardhat,用于智能合约的编译、测试和部署。
  • 编程语言: Node.js 和 Python,用于编写应用逻辑。
  • 交互工具: MetaMask,用于与DApp进行钱包交互。

有了这个坚实的基础,您就可以开始探索智能合约的世界,编写您的第一个DeFi应用、NFT项目或其他去中心化创新了,祝您开发愉快!