更新软件包列表

admin12 2026-03-19 12:48

从零开始:在Ubuntu系统上搭建以太坊开发环境全指南


以太坊作为全球领先的智能合约平台,是去中心化应用(DApp)和区块链创新的核心,对于任何想要进入Web3世界的开发者来说,在本地搭建一个稳定、高效的以太坊开发环境是必不可少的第一步,本文将以广泛用于服务器和开发的Ubuntu操作系统为例,为您提供一份详尽、清晰的环境搭建指南,帮助您顺利开启以太坊开发之旅。

准备工作:环境与工具

在开始之前,请确保您的Ubuntu系统已准备就绪,我们推荐使用Ubuntu 20.04或22.04 LTS版本,因为它们拥有更长的支持周期和更好的软件兼容性。

    随机配图
>操作系统:Ubuntu 20.04.4 LTS (64-bit) 或更高版本。
  • 硬件要求
    • CPU:至少双核处理器。
    • 内存:建议至少8GB RAM,如果计划运行全节点或进行复杂测试,16GB或以上更佳。
    • 存储:至少50GB可用硬盘空间,用于安装软件和存储区块链数据。
  • 软件
    • Git:用于从代码仓库下载代码。
    • Python 3:许多以太坊工具链的依赖。
    • Node.js 和 npm:用于运行和安装前端DApp框架(如React)和以太坊交互库(如Web3.js, Ethers.js)。
    • 代码编辑器:如 VS Code。
  • 核心组件安装

    以太坊开发环境由几个关键工具组成,我们将逐一进行安装。

    安装Go语言

    以太坊的官方客户端(如Geth)是用Go语言编写的,因此需要先安装Go。

    # 安装Go语言
    sudo apt install golang-go
    # 验证安装
    go version

    安装Node.js 和 npm

    Node.js是构建现代DApp前端和与以太坊网络交互的基础。

    # 使用NodeSource仓库安装最新的LTS版本(以Node 18为例)
    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    # 安装Node.js和npm
    sudo apt install nodejs
    # 验证安装
    node -v
    npm -v

    安装代码编辑器 VS Code

    VS Code是当前最受欢迎的代码编辑器之一,拥有丰富的以太坊开发插件。

    # 下载并添加Microsoft GPG密钥
    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
    sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
    echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code/ stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
    # 安装VS Code
    sudo apt update
    sudo apt install code
    # 安装VS Code后,可以通过命令行启动
    code .

    VS Code 推荐插件

    • Solidity:由Juan Blanco开发,提供语法高亮、智能提示和编译功能。
    • Prettier - Code formatter:代码格式化工具。
    • ESLint:JavaScript代码检查工具。

    核心以太坊客户端:安装Geth

    Geth(Go-Ethereum)是官方的以太坊客户端,功能强大,可以用于同步全节点、创建私有链、挖矿以及作为DApp的后端。

    编译并安装Geth

    虽然可以通过apt安装Geth,但版本可能较旧,为了获得最新功能,我们推荐从源码编译。

    # 安装编译Geth所需的依赖
    sudo apt install build-essential
    # 克隆Geth的官方代码仓库
    git clone https://github.com/ethereum/go-ethereum.git
    # 进入项目目录
    cd go-ethereum
    # 切换到最新的稳定版本分支(stable分支)
    git checkout stable
    # 编译Geth
    make geth
    # 将编译好的geth可执行文件移动到系统PATH中,方便全局使用
    sudo cp build/bin/geth /usr/local/bin/
    # 验证安装
    geth version

    启动并连接到以太坊网络

    安装完成后,您可以使用Geth连接到公共的以太坊主网或测试网。

    连接到以太坊主网

    这是连接到真实、有价值的以太坊网络的方式。

    # 启动Geth,连接到主网,并开启HTTP-RPC服务,默认端口8545
    # --syncmode "full" 表示同步所有区块数据,成为全节点
    # --http 启动HTTP-RPC API服务
    # --http.addr "0.0.0.0" 允许任何IP地址访问API服务(注意安全风险)
    # --http.vhosts "*" 允许任何主机名访问
    geth --syncmode "full" --http --http.addr "0.0.0.0" --http.vhosts "*"

    首次启动:第一次启动时,Geth需要同步大量的区块数据,这可能需要花费数天甚至数周的时间,并且会占用大量磁盘空间(超过1TB),在同步过程中,终端会显示同步进度。

    连接到测试网(推荐开发使用)

    对于开发者来说,使用测试网更经济、更快捷,我们以Goerli测试网为例。

    # 启动Geth,连接到Goerli测试网
    geth --goerli --syncmode "full" --http --http.addr "0.0.0.0"

    Goerli测试网的区块数据要小得多,同步速度也快得多。

    使用控制台交互

    启动Geth后,您可以打开一个新的终端窗口,使用geth attach命令附加到Geth的JavaScript控制台,直接与区块链进行交互。

    # 附加到刚刚启动的Geth节点
    geth attach http://localhost:8545

    进入控制台后,您可以执行以下命令:

    • eth.blockNumber:查看当前最新区块号。
    • eth.accounts:查看本地账户列表。
    • personal.newAccount("your_password"):创建一个新账户。

    环境验证:部署一个简单的智能合约

    环境搭建的最终目的是为了开发和部署智能合约,我们将使用Hardhat这一现代化的开发框架来验证我们的环境。

    初始化Hardhat项目

    # 创建一个新目录并进入
    mkdir my-dapp && cd my-dapp
    # 初始化Hardhat项目
    npm init --yes
    # 安装Hardhat
    npm install --save-dev hardhat
    # 在项目目录下创建Hardhat配置文件
    npx hardhat

    在交互式安装过程中,选择"Create a basic JavaScript project"即可。

    编写智能合约

    contracts/目录下,创建一个名为SimpleStorage.sol的文件:

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.9;
    contract SimpleStorage {
        uint256 private myNumber;
        function set(uint256 _newNumber) public {
            myNumber = _newNumber;
        }
        function get() public view returns (uint256) {
            return myNumber;
        }
    }

    编译合约

    在项目根目录下运行:

    npx hardhat compile

    编译成功后,您会在artifacts/目录下看到编译好的合约字节码和ABI。

    恭喜!您已经成功在Ubuntu系统上搭建了一个完整的以太坊开发环境,您具备了以下能力:

    • 运行一个以太坊节点(主网或测试网)。
    • 通过HTTP-RPC API与节点进行交互。
    • 使用Hardhat框架编译和测试智能合约。

    这仅仅是Web3开发旅程的起点,您可以学习如何使用Truffle或Hardhat进行自动化测试,使用React和Web3.js构建前端DApp,或者深入探索DeFi、NFT等更广阔的领域,祝您在去中心化的世界里探索愉快!

    本文转载自互联网,具体来源未知,或在文章中已说明来源,若有权利人发现,请联系我们更正。本站尊重原创,转载文章仅为传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网站转载使用,请保留本站注明的文章来源,并自负版权等法律责任。如有关于文章内容的疑问或投诉,请及时联系我们。我们转载此文的目的在于传递更多信息,同时也希望找到原作者,感谢各位读者的支持!
    最近发表
    随机文章
    随机文章