EOSIO开发环境配置终极指南:避坑秘籍!

频道: 教程 日期: 浏览:94

柚子币(EOS)开发环境配置指南

简介

EOSIO(柚子币)是一个区块链操作系统,旨在提供高性能、可扩展且用户友好的区块链平台,专注于解决传统区块链在交易速度和可扩展性方面面临的挑战。为了高效地开发基于 EOSIO 的去中心化应用程序(DApps),开发者需要构建一个精心配置的开发环境。本文将提供一个详尽的指南,指导您在多种操作系统上配置 EOSIO 开发环境,包括安装必要的依赖软件、设置必要的工具链(如 cdt ,即EOSIO合约开发工具包),以及通过构建简单的示例合约来验证环境的正确安装和功能。

EOSIO平台的核心特性包括:委托权益证明(DPoS)共识机制,允许快速的区块生成和交易确认;可升级的智能合约,允许开发者在不中断网络运行的情况下修复漏洞和添加新功能;以及内置的资源管理系统,用于控制CPU、网络带宽和存储的使用,从而防止资源耗尽和网络拥塞。因此,一个稳定可靠的开发环境是成功构建EOSIO DApp的关键。

前置准备

在开始构建和运行加密货币节点之前,请务必确认你的计算机环境已满足以下各项基本要求,这将有助于确保节点运行的稳定性和效率:

  • 操作系统: 为了获得最佳兼容性和性能,我们推荐使用Ubuntu Server或桌面版作为节点服务器的操作系统。macOS也可用于开发和测试目的。对于Windows用户,强烈建议通过Windows Subsystem for Linux (WSL) 安装Ubuntu子系统,然后再进行后续操作。WSL能够提供一个与原生Linux环境高度相似的开发环境,避免潜在的兼容性问题。
  • 硬件: 加密货币节点通常需要处理大量的计算和数据存储任务。因此,建议你的服务器配备至少4GB的内存(RAM),如果计划运行多个节点或者存储大量的历史数据,建议增加到8GB或更多。同时,充足的磁盘空间至关重要,至少需要50GB的可用空间,并建议使用SSD硬盘以提高读写速度,尤其是运行需要快速同步的节点。对于一些需要长期运行且数据量庞大的节点,100GB甚至更大的磁盘空间将更为合适。
  • 网络: 加密货币节点需要持续与其他节点进行数据交换和同步,因此稳定的互联网连接是必不可少的。建议使用带宽较高的网络连接,以确保节点能够及时接收和发送区块数据,避免因网络问题导致的数据同步延迟或节点掉线。同时,确保你的网络防火墙或路由器已正确配置,允许节点使用的端口进行通信,这对于节点加入网络至关重要。

Ubuntu 系统下的配置

Ubuntu 是一个广泛使用的 Linux 发行版,因其稳定性、易用性和庞大的社区支持,成为开发 EOSIO (现 Antelope) 应用的理想选择。配置 Ubuntu 系统用于 EOSIO (Antelope) 开发环境涉及安装必要的依赖项、克隆源代码仓库、构建可执行文件和验证安装。

  1. 安装依赖项:
  2. 打开终端,执行以下命令安装构建和运行 EOSIO (Antelope) 节点、智能合约以及相关工具所需的全部依赖项。更新软件包列表是确保安装最新版本依赖项的关键步骤。

    bash sudo apt update sudo apt install -y git cmake build-essential clang libssl-dev libboost-all-dev libicu-dev python3 python3-pip

    这些依赖项的具体作用如下:

    • git :版本控制系统,用于从 GitHub 克隆 EOSIO (Antelope) 源代码仓库,便于管理和追踪代码变更。
    • cmake :跨平台构建工具,用于生成与特定操作系统和编译器兼容的构建文件,简化构建过程。
    • build-essential :包含了 GCC (GNU Compiler Collection) 等基础编译工具链,是编译 C++ 代码所必需的。
    • clang :C、C++ 和 Objective-C 编译器,EOSIO (Antelope) 官方推荐使用 clang,因为它在某些方面具有更好的性能和标准兼容性。
    • libssl-dev :OpenSSL 库的开发文件,提供安全套接层 (SSL) 和传输层安全 (TLS) 协议的加密功能,用于网络通信安全。
    • libboost-all-dev :Boost C++ 库,EOSIO (Antelope) 大量使用了 Boost 库中的各种组件,例如智能指针、数据结构和算法。
    • libicu-dev :国际化组件 ICU 的开发文件,提供 Unicode 和本地化支持,确保应用能够处理多语言和区域设置。
    • python3 python3-pip :Python 3 解释器和包管理器,用于运行 EOSIO (Antelope) 提供的 Python 脚本,这些脚本通常用于自动化任务和工具。
  3. 克隆 EOSIO (Antelope) 仓库:
  4. 选择一个合适的目录来存放 EOSIO (Antelope) 源代码。推荐使用用户目录下的一个专门用于开发的子目录。使用 git clone 命令从 GitHub 克隆 EOSIO (Antelope) 仓库,并将目录切换到该仓库。

    bash git clone https://github.com/AntelopeIO/leap.git cd leap git checkout v4.0.0 # 建议使用稳定版本,如 v4.0.0 git submodule update --init --recursive

    克隆特定版本的 EOSIO (Antelope) 仓库至关重要,可以避免因代码库频繁更新带来的兼容性问题。 git submodule update --init --recursive 命令用于初始化和更新仓库中的所有子模块,子模块是仓库依赖的其他 Git 仓库,包含额外的代码库和资源。AntelopeIO现在维护leap仓库,是EOSIO的演进版本。建议使用AntelopeIO/leap。

  5. 构建 EOSIO (Antelope):
  6. leap (原eos) 目录下,创建一个独立的 build 目录用于存放构建生成的文件。使用 cmake 配置构建过程,然后使用 make 命令进行编译。独立的构建目录可以保持源代码目录的整洁,并且允许进行多次不同配置的构建。

    bash mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j $(nproc) sudo make install

    • mkdir build :创建构建目录,用于存放编译过程中生成的目标文件、库文件和可执行文件。
    • cmake -DCMAKE_BUILD_TYPE=Release .. :配置构建选项。 CMAKE_BUILD_TYPE 变量设置为 Release ,表示生成优化后的二进制文件,提高性能。 .. 表示 CMakeLists.txt 文件位于上级目录。
    • make -j $(nproc) :执行并行编译,充分利用多核 CPU 的优势,加速编译过程。 $(nproc) 命令返回当前系统的 CPU 核心数。
    • sudo make install :将编译后的 EOSIO (Antelope) 工具和库安装到系统目录,以便在任何位置都可以访问这些工具。安装通常需要管理员权限,因此使用 sudo 命令。
  7. 验证安装:
  8. 安装完成后,可以通过运行 nodeos --version 命令来验证安装是否成功。如果安装成功,终端会显示 EOSIO (Antelope) 的版本信息。

macOS 系统下的配置

在 macOS 上配置 EOSIO 开发环境,需要安装必要的开发工具和依赖项。以下步骤将详细介绍如何在 macOS 系统上搭建 EOSIO 开发环境:

  1. 安装 Xcode Command Line Tools:

    Xcode Command Line Tools 提供了必要的 C++ 编译器、构建工具以及其他开发所需的实用程序。

    打开终端应用程序,输入以下命令并执行:

    xcode-select --install

    系统会提示您安装 Xcode Command Line Tools。按照提示完成安装过程。如果已经安装,该命令会提示您已经安装。

  2. 安装 Homebrew:

    Homebrew 是 macOS 上流行的包管理器,它可以简化软件包的安装和管理。您可以使用 Homebrew 安装 EOSIO 的依赖项。

    如果您的系统尚未安装 Homebrew,请在终端中执行以下命令进行安装:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    此命令会从 GitHub 下载 Homebrew 的安装脚本并执行。安装过程中可能会要求您输入管理员密码。安装完成后,建议执行 brew doctor 命令检查是否存在潜在问题并按照提示修复。

  3. 安装依赖项:

    EOSIO 依赖于多个开源库和工具。使用 Homebrew 可以轻松安装这些依赖项。执行以下命令安装所需的依赖项:

    brew update
    brew install git cmake boost openssl libtool automake pkg-config libusb
    brew tap mongodb/brew
    brew install [email protected]
    

    这些命令的作用如下:

    • brew update :更新 Homebrew 的软件包列表。
    • brew install git cmake boost openssl libtool automake pkg-config libusb :安装 Git(版本控制)、CMake(构建系统)、Boost(C++ 库)、OpenSSL(加密库)、Libtool(通用库支持脚本)、Automake(自动生成 Makefile 的工具)、Pkg-config(用于检索已安装库的信息)和 Libusb (通用USB库)。
    • brew tap mongodb/brew :添加 MongoDB 的 Homebrew 仓库。
    • brew install [email protected] :安装 MongoDB 5.0 社区版。注意,MongoDB 是可选的,只有在需要使用 MongoDB 作为状态数据库时才需要安装。选择5.0版本是因为其稳定性和兼容性。

    安装过程可能需要一些时间,请耐心等待。如果安装过程中出现任何错误,请仔细阅读错误信息并尝试解决。常见问题包括缺少依赖项或权限不足。

  4. 克隆 EOSIO 仓库:

    从 GitHub 克隆 EOSIO 源代码仓库到您的本地计算机。选择一个合适的目录(例如 ~/eosio ),然后执行以下命令:

    git clone https://github.com/EOSIO/eos.git
    cd eos
    git checkout v2.1.0   # 建议使用稳定版本
    git submodule update --init --recursive
    

    这些命令的含义如下:

    • git clone https://github.com/EOSIO/eos.git :将 EOSIO 仓库克隆到本地的 eos 目录。
    • cd eos :进入 eos 目录。
    • git checkout v2.1.0 :切换到 v2.1.0 版本。建议使用稳定版本以避免潜在的兼容性问题。可以根据实际情况选择其他版本。
    • git submodule update --init --recursive :初始化并更新子模块。EOSIO 项目依赖于多个子模块,需要使用此命令下载这些子模块的代码。
  5. 构建 EOSIO:

    在克隆的 EOSIO 源代码目录中,创建一个 build 目录,并使用 CMake 构建 EOSIO。执行以下命令:

    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make -j $(sysctl -n hw.logicalcpu_max)
    sudo make install
    

    这些命令的作用如下:

    • mkdir build :创建 build 目录,用于存放构建文件。
    • cd build :进入 build 目录。
    • cmake -DCMAKE_BUILD_TYPE=Release .. :使用 CMake 生成 Makefile。 -DCMAKE_BUILD_TYPE=Release 指定构建类型为 Release,以优化性能。 .. 指示 CMake 在父目录(即 EOSIO 源代码目录)中查找 CMakeLists.txt 文件。
    • make -j $(sysctl -n hw.logicalcpu_max) :使用 make 命令编译 EOSIO。 -j $(sysctl -n hw.logicalcpu_max) 选项指定使用多个 CPU 核心并行编译,以加快编译速度。 sysctl -n hw.logicalcpu_max 命令用于获取 macOS 的逻辑 CPU 核心数。
    • sudo make install :将编译好的 EOSIO 可执行文件安装到系统目录(例如 /usr/local/bin )。需要使用 sudo 命令以获取管理员权限。

    编译过程可能需要较长时间,具体取决于您的计算机性能。编译完成后,EOSIO 可执行文件将被安装到系统目录。

  6. 验证安装:

    安装完成后,可以通过运行 nodeos --version 命令来验证安装是否成功。如果安装成功,该命令将显示 EOSIO 的版本信息。

    nodeos --version

    如果出现错误,请检查您的环境变量设置,确保 nodeos 可执行文件所在的目录已添加到 PATH 环境变量中。

Windows 系统下的配置 (通过 WSL)

Windows Subsystem for Linux (WSL) 允许你在 Windows 操作系统上无缝运行 GNU/Linux 环境。 这为在 Windows 环境下进行 EOSIO 区块链应用的开发和测试提供了一种高度兼容且高效的方式,极大地简化了开发流程。相对于传统的虚拟机方案,WSL 提供了更低的资源占用和更好的性能表现,是目前在 Windows 上配置 EOSIO 开发环境的首选推荐方法。

  1. 安装 WSL:
  2. 安装 WSL 的首要步骤是启用该功能。 打开 PowerShell 应用程序,并以管理员权限运行(右键单击 PowerShell 图标,选择“以管理员身份运行”)。然后,在 PowerShell 窗口中执行以下命令:

    powershell wsl --install

    这个命令会自动下载并安装默认的 Ubuntu Linux 发行版。 如果你希望安装其他 Linux 发行版,例如 Debian 或 Fedora,可以在 Microsoft Store 中搜索并安装。 安装完成后,为了确保 WSL 组件能够正确初始化,请务必重新启动你的计算机。重启后,WSL 将完成安装过程,并提示你创建 Linux 用户的用户名和密码。

  3. 配置 Ubuntu 环境:
  4. 在成功安装并重启计算机后,启动 Ubuntu 发行版。系统会提示你设置一个新的用户名和密码,这将是你在 Ubuntu 环境中使用的用户凭据。完成用户设置后,你需要配置 Ubuntu 环境,以便能够编译和运行 EOSIO 软件。这包括安装必要的依赖项、克隆 EOSIO 源代码仓库,并最终构建 EOSIO。你可以参照 Ubuntu 系统下的详细配置步骤,安装诸如 CMake、Boost、OpenSSL 等开发工具和库,这些工具是成功构建 EOSIO 的关键。

注意:在 WSL(Windows Subsystem for Linux)中修改 /etc/hosts 文件

在使用 WSL 安装和配置区块链节点时,可能会遇到网络解析问题。为了确保节点能够正确地解析本地主机名,通常需要修改 /etc/hosts 文件。 在 /etc/hosts 文件中添加 127.0.0.1 localhost 这一行,可以将本地主机名 localhost 解析到本地回环地址 127.0.0.1 。 这对于节点之间的通信,特别是当节点需要连接到本地运行的其他服务或组件时至关重要。 请使用具有管理员权限的文本编辑器修改该文件,例如可以使用 sudo nano /etc/hosts 命令进行编辑。 完成修改后,保存文件并退出编辑器。

  • 验证安装:检查 nodeos 版本

    成功安装区块链节点软件后,务必验证安装是否正确。 最直接的方法是通过命令行工具检查已安装的 nodeos 守护进程的版本。 在终端中运行 nodeos --version 命令,系统将输出已安装的 nodeos 的版本信息。 如果命令执行成功并显示版本号,则表明安装过程顺利完成。 如果命令无法找到或执行,请检查 nodeos 是否已正确添加到系统环境变量 PATH 中,或者重新检查安装步骤。

  • 其他注意事项

    • 版本控制: 始终使用稳定版本的 EOSIO 仓库。选择经过充分测试和验证的特定版本,而非不稳定的开发分支。避免使用 master develop 分支,因为这些分支可能包含未经全面测试和验证的最新更改,可能导致构建失败或不可预测的行为。稳定版本通常以标签或发布版本号表示,能提供更可靠的开发环境。
    • 环境变量: 你可能需要配置操作系统环境变量,特别是 PATH 变量,以便能够从系统的任何目录访问和执行 EOSIO 工具链中的可执行文件,如 nodeos , cleos eosio-cpp 。 这样做可以简化命令行操作,避免每次调用工具时都必须指定完整路径。确保环境变量正确配置后,新打开的终端窗口才能生效。
    • 权限问题: 在编译和安装 EOSIO 软件时,可能会遇到文件系统权限不足的问题,导致无法读取源代码、写入构建目录或执行某些操作。 确保当前用户拥有足够的权限来访问 EOSIO 代码库和构建过程中涉及的所有目录和文件。 必要时,可以使用 chmod 命令修改文件权限,或使用 sudo 命令以管理员权限运行相关命令。
    • 错误处理: 在构建 EOSIO 的过程中,可能会遇到各种错误,例如编译错误、链接错误或依赖项缺失。 仔细阅读编译器或构建工具输出的错误信息,这些信息通常包含解决问题的关键线索。 利用错误信息中的关键字在 EOSIO 官方论坛、Stack Overflow 和 GitHub 等社区平台上搜索解决方案。 EOSIO 社区非常活跃,提供了丰富的文档、教程和问题解答,可以帮助你解决构建过程中遇到的问题。

    配置 EOSIO 开发环境可能需要一些时间和精力,但一旦设置完成,你就可以开始开发基于 EOSIO 的应用程序了。 遵循本文的步骤,并仔细阅读错误信息,你将能够成功配置你的 EOSIO 开发环境。