随着区块链技术的飞速发展,越来越多的开发者投身于去中心化应用(DApp)的浪潮之中,MONAD作为一个新兴的、备受关注的公链项目,其独特的架构和潜力为开发者提供了广阔的创新空间,想要深入MONAD生态进行开发或测试,首先需要搭建一个稳定高效的本地开发环境,本文将详细介绍如何一步步搭建MONAD币的本地开发环境,助你快速上手。

前提条件

在开始搭建之前,请确保你的系统满足以下基本要求:

  1. 操作系统:推荐使用64位的 Ubuntu 20.04 LTSmacOS 10.15+,Windows用户可以通过WSL2(Windows Subsystem for Linux 2)来模拟Linux环境。
  2. 硬件配置
    • CPU:至少双核,建议四核及以上。
    • 内存:至少8GB RAM,推荐16GB或以上,特别是在运行节点和编译复杂合约时。
    • 硬盘空间:至少50GB可用空间,用于安装工具、同步数据等。
  3. 基础软件
    • Git:用于代码克隆。
    • Go:MONAD节点是用Go语言编写的,需要安装Go(通常建议MONAD官方推荐的版本,请查阅最新文档确认,例如1.19.x或更高版本)。
    • Make:用于执行构建脚本。
    • CMake:可能用于某些依赖编译。
    • GCC/G++:C++编译器。

你可以通过以下命令检查和安装这些基础软件(以Ubuntu为例):

sudo apt update
sudo apt install -y git make cmake build-essential

对于Go语言的安装,建议从官网下载tar包并手动配置环境变量,以确保版本符合要求。

安装Go语言环境

MONAD节点基于Go开发,因此正确安装和配置Go至关重要。

  1. 下载Go:访问Go官方下载页面(https://golang.org/dl/)选择适合你系统的版本,
    wget https://golang.org/dl/go1.19.10.linux-amd64.tar.gz
  2. 解压并配置
    sudo tar -C /usr/local -xzf go1.19.10.linux-amd64.tar.gz
  3. 设置环境变量:编辑你的shell配置文件(如~/.bashrc~/.profile):
    echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
    echo 'export GOPATH=$HOME/go' >> ~/.bashrc
    echo 'export GOBIN=$GOPATH/bin' >> ~/.bashrc
    source ~/.bashrc
  4. 验证安装
    go version

    应该显示安装的Go版本信息。

安装MONAD核心开发工具

MONAD的核心开发工具主要包括monad(客户端)和monadcli(命令行工具)。

  1. 获取MONAD源代码

    git clone https://github.com/monad-io/monad.git
    cd monad

    注意:请务必从MONAD的官方GitHub仓库获取最新稳定版本的源代码。

  2. 编译和安装: MONAD使用Makefile来管理构建过程。

    # 检查是否有Makefile
    ls -l Makefile
    # 编译
    make build
    # 或者安装到$GOBIN目录(确保$GOBIN已添加到$PATH)
    make install

    编译成功后,monadmonadcli可执行文件会被生成在./build目录下,或者通过make install安装到$GOBIN目录中,确保该目录在你的系统PATH环境变量中。

  3. 验证安装

    monad version
    monadcli version

    如果能正确显示版本号,说明安装成功。

初始化MONAD节点本地环境

我们需要初始化一个本地MONAD节点用于开发和测试。

  1. 初始化节点

    # 创建一个目录用于存放节点数据
    mkdir -p ~/.monad
    cd ~/.monad
    # 初始化节点(这里以测试网配置为例,主网请参考官方文档)
    monad init --chain-id=monad-testnet NodeName

    NodeName为你节点自定义的名称。

  2. 配置节点

    • 编辑~/.monad/config/config.toml
      • 设置rpc.laddrtcp://127.0.0.1:26657(默认RPC端口,可根据需要修改)。
      • 设置proxy_apptcp://127.0.0.1:26658(默认ABCI端口)。
      • 确保p2p.seedsp2p.persistent_peers为空或指向测试网节点(本地单节点测试时可忽略)。
    • 编辑~/.monad/config/app.toml
      • 设置minimum-gas-prices为一个较低值,便于本地测试,例如000001mond
      • 确保api.enabletrue,这样可以通过REST API与节点交互。
  3. 启动节点

    monad start --rpc.laddr=tcp://0.0.0.0:26657

    节点启动后,你会看到同步区块的日志信息,本地单节点测试时,它会从创世区块开始生成。

  4. 检查节点状态: 打开另一个终端,执行:

    monadcli status --node tcp://localhost:26657

    如果能看到节点信息,包括同步状态、最新区块高度等,说明节点运行正常。

部署和测试智能合约(可选)

如果你需要进行智能合约开发,MONAD通常支持EVM兼容的智能合约,你可以使用Hardhat、Truffle等框架,并配置连接到本地MONAD节点。

  1. 安装Hardhat(以Hardhat为例):

    mkdir my-monad-dapp
    cd my-monad-dapp
    npm init -y
    npm install --save-dev hardhat
    npx hardhat

    按照提示创建一个Solidity项目。

  2. 配置Hardhat连接MONAD节点: 在hardhat.config.js中添加MONAD网络的配置:

    require("@nomicfoundation/hardhat-toolbox");
    const PRIVATE_KEY = "你的测试账户私钥"; // 可以通过monadcli keys generate生成
    const RPC_URL = "http://localhost:26657";
    module.exports = {
      solidity: "0.8.19",
      networks: {
        monadtestnet: {
          url: RPC_URL,
          accounts: [PRIVATE_KEY],
        },
      },
    };
  3. 部署合约: 编写好智能合约后,使用Hardhat部署:

    npx hardhat compile
    npx hardhat run scripts/deploy.js --network monadtestnet

常见问题与注意事项

  1. 端口冲突:确保26657(RPC)、26656(P2P)等关键端口未被其他程序占用。
  2. 同步问题:本地节点启动后需要
    随机配图
    一些时间生成区块,如果长时间不同步,可以检查配置文件或尝试重置节点(monad unsafe-reset-all)。
  3. Go版本兼容性:MONAD对Go版本可能有特定要求,请务必参考MONAD官方文档推荐的版本。
  4. 官方文档:区块链项目更新迭代较快,本文档可能存在滞后性,遇到问题时,优先查阅MONAD官方GitHub仓库的README、Wiki或Issue区。
  5. 安全性:本地开发环境中的私钥和测试币仅用于测试,切勿用于主网转账。

通过以上步骤,你应该已经成功搭建了MONAD币的本地开发环境,现在你可以开始探索MONAD的生态系统,开发自己的DApp、编写智能合约或进行节点相关的测试工作,持续学习和查阅官方文档是开发者成长的关键,祝你开发顺利!