diff --git a/.gitignore b/.gitignore index 7f24273..6e4d18a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ # Claude Code .mcp.json .claude/ -llmdoc/ example/ .source/ \ No newline at end of file diff --git a/README.md b/README.md index 8e73c4b..0bfc591 100644 --- a/README.md +++ b/README.md @@ -112,10 +112,25 @@ sudo systemctl disable mond.service ``` /opt/mond/mond # 二进制文件 -/var/lib/mond/ # 区块链数据目录 +/var/lib/mond/params.conf # 配置文件 +/var/lib/mond/data/ # 区块链数据目录 /var/log/mond/ # 日志目录 ``` +### 修改配置 + +Debian/Ubuntu 系统包使用配置文件方式运行,修改配置非常简单: + +```bash +# 1. 编辑配置文件 +sudo nano /var/lib/mond/params.conf + +# 2. 重启服务使配置生效 +sudo systemctl restart mond.service +``` + +**优势**:配置文件在升级时不会被覆盖,您的自定义设置会被保留。 + #### 通用二进制包 ``` diff --git a/debian/mond.service b/debian/mond.service index f80618d..2203205 100644 --- a/debian/mond.service +++ b/debian/mond.service @@ -8,20 +8,8 @@ Type=simple # 工作目录 WorkingDirectory=/opt/mond -# 执行命令 -ExecStart=/opt/mond/mond \ - --data-dir=/var/lib/mond \ - --prune-blockchain \ - --zmq-pub tcp://127.0.0.1:18083 \ - --out-peers=32 \ - --in-peers=64 \ - --add-priority-node=p2pmd.xmrvsbeast.com:18080 \ - --add-priority-node=nodes.hashvault.pro:18080 \ - --enforce-dns-checkpointing \ - --enable-dns-blocklist \ - --log-level 1 \ - --log-file=/var/log/mond/mond.log \ - --non-interactive +# 执行命令 - 使用配置文件 +ExecStart=/opt/mond/mond --config-file=/var/lib/mond/params.conf --non-interactive # 重启策略 Restart=always diff --git a/debian/postinst b/debian/postinst index 123990f..50a52e5 100755 --- a/debian/postinst +++ b/debian/postinst @@ -18,9 +18,62 @@ chown mond:mond /var/log/mond chmod 750 /var/log/mond # Create data directory -mkdir -p /var/lib/mond -chown mond:mond /var/lib/mond -chmod 750 /var/lib/mond +mkdir -p /var/lib/mond/data +chown -R mond:mond /var/lib/mond +chmod -R 750 /var/lib/mond + +# Create configuration file if it doesn't exist +if [ ! -f /var/lib/mond/params.conf ]; then + cat > /var/lib/mond/params.conf << 'EOF' +# Mond Configuration File +# This file is automatically created during installation +# Edit this file to customize your Mond daemon settings +# After modifying, restart the service: sudo systemctl restart mond.service + +# Data directory - where blockchain data is stored +data-dir=/var/lib/mond/data + +# Blockchain pruning - reduces disk usage by pruning old blockchain data +prune-blockchain=1 + +# ZMQ pub socket for notifications +zmq-pub=tcp://127.0.0.1:18083 + +# Network peer settings +out-peers=32 +in-peers=64 + +# Priority nodes - trusted nodes to connect to +add-priority-node=p2pmd.xmrvsbeast.com:18080 +add-priority-node=nodes.hashvault.pro:18080 + +# DNS checkpointing and blocklist +enforce-dns-checkpointing=1 +enable-dns-blocklist=1 + +# P2P and RPC bind settings +#p2p-bind-ip=0.0.0.0 +#p2p-bind-port=18080 +#rpc-bind-ip=0.0.0.0 +#rpc-bind-port=18081 +#confirm-external-bind=1 + +# RPC login credentials +#rpc-login=user:password + +# Enable SSL for RPC connections +#rpc-ssl=1 +#rpc-ssl-certificate=/path/to/your/certificate.pem +#rpc-ssl-private-key=/path/to/your/private_key.pem + +# Logging settings +# Log levels: 0=minimal, 1=errors, 2=warnings, 3=info, 4=debug +log-level=3 +log-file=/var/log/mond/mond.log +EOF + chown mond:mond /var/lib/mond/params.conf + chmod 640 /var/lib/mond/params.conf +fi # Set permissions on binary chown root:mond /opt/mond/mond @@ -39,22 +92,31 @@ fi echo "" echo "✅ Mond installed successfully!" echo "" -echo "📋 Service Information:" +echo "📋 Configuration and startup:" echo "" -echo " mond - Mond cryptocurrency network daemon" +echo "1. Review and configure settings (optional):" +echo " sudo nano /var/lib/mond/params.conf" echo "" -echo "To start the daemon:" -echo " sudo systemctl enable mond.service" -echo " sudo systemctl start mond.service" +echo " Adjust network settings, peer connections, and other options as needed." echo "" -echo "Data directory:" -echo " /var/lib/mond" +echo "2. Start Mond:" +echo " sudo systemctl enable mond.service" +echo " sudo systemctl start mond.service" echo "" -echo "Log directory:" -echo " /var/log/mond" +echo "3. Check status:" +echo " sudo systemctl status mond.service" +echo " sudo journalctl -u mond -f" echo "" -echo "Binary location:" -echo " /opt/mond/mond" +echo "📁 Important paths:" +echo " Config file: /var/lib/mond/params.conf" +echo " Data directory: /var/lib/mond/data" +echo " Log directory: /var/log/mond" +echo " Binary: /opt/mond/mond" +echo "" +echo "💡 Tip: Your params.conf will NOT be overwritten during package upgrades." +echo "" +echo "For help:" +echo " /opt/mond/mond --help" echo "" exit 0 diff --git a/debian/postrm b/debian/postrm index b3f795b..7c88e82 100755 --- a/debian/postrm +++ b/debian/postrm @@ -12,16 +12,9 @@ case "$1" in delgroup --quiet mond || true fi - # Remove log directory + # Remove data directories (only on purge) rm -rf /var/log/mond - - # Note: We keep /var/lib/mond (blockchain data) for safety - # Users can manually remove it if needed - echo "" - echo "⚠️ Blockchain data preserved at: /var/lib/mond" - echo "To completely remove all data, run:" - echo " sudo rm -rf /var/lib/mond" - echo "" + rm -rf /var/lib/mond ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) diff --git a/llmdoc/architecture/build-system.md b/llmdoc/architecture/build-system.md new file mode 100644 index 0000000..fb13f79 --- /dev/null +++ b/llmdoc/architecture/build-system.md @@ -0,0 +1,38 @@ +# Mond 构建系统架构 + +## 1. 构建环境支持 + +Mond 项目支持多平台构建: +- Ubuntu (amd64/arm64) +- Alpine Linux (amd64/arm64) + +## 2. 关键构建组件 + +### 初始化脚本 (init.sh) +- 负责版本和配置预处理 +- 使用 sed 进行文本替换 +- 处理版本宏定义 + +### Dockerfile +- Alpine Linux: docker/Dockerfile.alpine +- 处理依赖安装 +- 配置构建环境 + +## 3. 依赖管理 + +### Boost 库组件 +必需的 Boost 库组件: +- filesystem +- thread +- date_time +- chrono +- serialization +- program_options +- locale +- system +- regex + +## 4. CMake 构建流程 +- 检查系统兼容性 +- 链接必要库 +- 生成可执行文件 diff --git a/llmdoc/architecture/cicd-pipeline.md b/llmdoc/architecture/cicd-pipeline.md new file mode 100644 index 0000000..21f3a13 --- /dev/null +++ b/llmdoc/architecture/cicd-pipeline.md @@ -0,0 +1,41 @@ +# Mond CI/CD 流水线架构 + +## 1. 身份标识 + +- **定义:** Gitea Actions 驱动的多架构持续集成与交付系统 +- **目的:** 自动化构建、测试和发布 Mond 项目到多个平台和包管理系统 + +## 2. 核心组件 + +- `.gitea/workflows/ci.yaml` (CIWorkflow): 定义整个 CI/CD 流程 +- `debian/build-deb.sh` (PackageBuilder): 处理 Debian 包构建逻辑 + +## 3. 执行流程(LLM 检索路径) + +### 持续集成流程 +1. **代码推送触发:** 监听 master 分支和 PR 事件 +2. **多架构构建:** + - 目标架构:amd64, arm64 + - 目标发行版:Ubuntu, Alpine +3. **构建步骤:** + - 代码检出 + - 依赖安装 + - 单元测试 + - 二进制编译 + - 包构建 + +### 发布流程 +1. **标签创建:** 手动或自动创建语义化版本标签 +2. **构建制品:** + - 多架构 Docker 镜像 + - Debian 包 + - 二进制可执行文件 +3. **发布到:** + - GitHub/Gitea Release + - 包管理仓库 + +## 4. 设计原理 + +- **可移植性:** 支持多架构和发行版 +- **自动化:** 减少手动干预 +- **一致性:** 标准化构建和发布流程 \ No newline at end of file diff --git a/llmdoc/architecture/packaging.md b/llmdoc/architecture/packaging.md new file mode 100644 index 0000000..9bfdacb --- /dev/null +++ b/llmdoc/architecture/packaging.md @@ -0,0 +1,59 @@ +# Mond 打包系统架构 + +## 1. 身份标识 + +- **定义:** 基于 Debian 打包规范的多平台软件分发系统 +- **目的:** 提供标准化、可靠的软件安装和管理机制 + +## 2. 核心组件 + +- `debian/control.template` (PackageMetadata): 定义包元数据 +- `debian/postinst` (PostInstallScript): 安装后配置脚本 +- `debian/mond.service` (SystemdService): systemd 服务配置 +- `debian/build-deb.sh` (BuildScript): 构建 Debian 包的脚本 + +## 3. 打包系统设计 + +### Debian 包结构 +- **元数据:** 版本、依赖、描述 +- **文件布局:** + - 二进制文件:`/opt/mond/mond` + - 配置文件:`/var/lib/mond/params.conf`(首次安装时自动创建) + - 数据目录:`/var/lib/mond/data/` + - 日志目录:`/var/log/mond/` + - systemd 服务:`/lib/systemd/system/mond.service` + +### 安装后脚本逻辑 +1. 创建必要的系统用户和组(`mond:mond`) +2. 创建日志目录和数据目录(包括 `/var/lib/mond/data` 子目录) +3. **生成默认配置文件**(如果不存在) + - 位置:`/var/lib/mond/params.conf` + - 包含所有默认运行参数 + - 使用 INI 格式 + - 设置正确的权限(640, mond:mond) +4. 设置文件和目录权限 +5. 重载 systemd 配置 +6. 显示安装后说明(包括配置文件位置和使用指引) + +**重要特性:** 配置文件只在首次安装时创建,升级时不会覆盖用户修改。 + +### systemd 集成 +- 支持标准服务管理命令 +- 使用配置文件方式启动(`--config-file=/var/lib/mond/params.conf --non-interactive`) +- 配置服务依赖和启动行为 +- 提供日志和状态监控 +- 安全沙箱设置(NoNewPrivileges, ProtectSystem, ProtectHome) +- 允许写入配置目录、数据目录和日志目录(ReadWritePaths) +- 自动重启策略(Restart=always) + +**配置管理优势:** +- 用户修改配置文件后,`apt upgrade` 不会覆盖 +- systemd 服务文件可以安全更新,不影响用户配置 +- 配置集中管理,易于维护 +- 数据与配置分离,便于管理 + +## 4. 设计原理 + +- **标准合规:** 遵循 Debian 打包最佳实践 +- **可配置性:** 灵活的服务和安装配置 +- **可靠性:** 通过 systemd 提供健壮的服务管理 \ No newline at end of file diff --git a/llmdoc/guides/how-to-build.md b/llmdoc/guides/how-to-build.md new file mode 100644 index 0000000..b3ec4dd --- /dev/null +++ b/llmdoc/guides/how-to-build.md @@ -0,0 +1,27 @@ +# 如何构建 Mond 项目 + +## 支持的平台 +- Ubuntu (amd64/arm64) +- Alpine Linux (amd64/arm64) + +## 构建步骤 + +1. **准备环境** + - 安装必要的依赖:Boost、CMake、编译工具链 + +2. **克隆仓库** + + +3. **运行初始化脚本** + Project successfully modified from Monero to Mond! +Binary output name: mond +Project name: mond + +4. **编译项目** + + +## 常见问题排查 + +- 确保所有 Boost 组件已正确安装 +- 检查 CMake 版本兼容性 +- 验证编译器支持情况 diff --git a/llmdoc/guides/how-to-install.md b/llmdoc/guides/how-to-install.md new file mode 100644 index 0000000..d72e0e5 --- /dev/null +++ b/llmdoc/guides/how-to-install.md @@ -0,0 +1,62 @@ +# Mond 安装指南 + +## 支持的平台 + +Mond 支持以下平台和安装方式: +- Debian 12 (Bookworm) +- Debian 13 (Trixie) +- Ubuntu 最新 LTS 版本 +- 通用 Linux 二进制包(支持 AMD64 和 ARM64) + +## 方式一:Debian/Ubuntu 安装(推荐) + +### Debian 12 (Bookworm) + +```bash +# 1. 下载并添加 GPG 密钥 +sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key \ + -o /etc/apt/keyrings/gitea-wangdefa.asc + +# 2. 添加软件源 +echo "deb [signed-by=/etc/apt/keyrings/gitea-wangdefa.asc] https://gitea.bcde.io/api/packages/wangdefa/debian bookworm main" | \ + sudo tee -a /etc/apt/sources.list.d/wangdefa.list + +# 3. 安装 +sudo apt-get update +sudo apt-get install mond +``` + +### Debian 13 (Trixie) + +```bash +# 1. 下载并添加 GPG 密钥 +sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key \ + -o /etc/apt/keyrings/gitea-wangdefa.asc + +# 2. 添加软件源 +echo "deb [signed-by=/etc/apt/keyrings/gitea-wangdefa.asc] https://gitea.bcde.io/api/packages/wangdefa/debian trixie main" | \ + sudo tee -a /etc/apt/sources.list.d/wangdefa.list + +# 3. 安装 +sudo apt-get update +sudo apt-get install mond +``` + +## 方式二:通用二进制包安装 + +```bash +# 1. 下载对应架构的包(替换 VERSION 为实际版本号) +wget https://gitea.bcde.io/releases/download/VERSION/mond-amd64-ubuntu-VERSION.tar.gz + +# 2. 解压 +tar -xzf mond-amd64-ubuntu-VERSION.tar.gz + +# 3. 运行 +./mond --help +``` + +## 依赖项 + +Mond 没有复杂的外部依赖。Debian 包管理器将自动处理必要的系统依赖。对于二进制包,请确保: +- 使用 Linux 64位系统(AMD64 或 ARM64) +- 具有基础 Linux 运行时环境 \ No newline at end of file diff --git a/llmdoc/guides/how-to-release.md b/llmdoc/guides/how-to-release.md new file mode 100644 index 0000000..e89c5ae --- /dev/null +++ b/llmdoc/guides/how-to-release.md @@ -0,0 +1,64 @@ +# 如何发布 Mond 项目 + +## 1. 准备工作 + +### 前提条件 +- 已配置 Gitea 仓库 +- 具备仓库管理员权限 +- 已安装必要的构建工具 + +## 2. 创建 Release + +### 方法一:GitHub/Gitea Web 界面 +1. 导航到仓库 Releases 页面 +2. 点击 "New Release" +3. 选择目标分支 +4. 输入语义化版本标签(例如 `v1.2.3`) +5. 填写发布说明 + +### 方法二:命令行 +```bash +git tag -a v1.2.3 -m "Release version 1.2.3" +git push origin v1.2.3 +``` + +## 3. 配置 Gitea Secrets + +### 必需的 Secrets +- `REGISTRY_USERNAME`: 包仓库用户名 +- `REGISTRY_PASSWORD`: 包仓库认证令牌 +- `GPG_PRIVATE_KEY`: 用于签名的 GPG 私钥 +- `GPG_PASSPHRASE`: GPG 私钥密码 + +### 设置步骤 +1. 进入仓库设置 +2. 选择 "Secrets" +3. 添加每个必需的 Secret + +## 4. 包管理仓库上传 + +### 自动上传 +- CI 流水线将自动处理 +- 触发条件:新的版本标签推送 + +### 手动上传(备选) +```bash +# 构建 Debian 包 +./debian/build-deb.sh + +# 上传到包仓库 +dput ppa:your-ppa-name/mond mond_1.2.3_amd64.changes +``` + +## 5. 发布后验证 + +1. 检查 GitHub/Gitea Releases +2. 验证包管理仓库的可用性 +3. 测试不同平台的安装 +4. 确认 systemd 服务正常运行 + +## 注意事项 + +- 遵循语义化版本(Semantic Versioning) +- 每次发布前运行完整的测试套件 +- 更新 CHANGELOG.md \ No newline at end of file diff --git a/llmdoc/guides/how-to-use.md b/llmdoc/guides/how-to-use.md new file mode 100644 index 0000000..d69787f --- /dev/null +++ b/llmdoc/guides/how-to-use.md @@ -0,0 +1,55 @@ +# Mond 使用指南 + +## 基本命令和选项 + +### 直接运行 + +```bash +# 基本运行 +./mond + +# 指定数据目录 +./mond --data-dir=/path/to/data + +# 指定日志文件 +./mond --log-file=/path/to/log + +# 后台运行 +./mond --detach +``` + +## Systemd 服务管理 + +### 服务操作 + +```bash +# 启用并启动服务 +sudo systemctl enable mond.service +sudo systemctl start mond.service + +# 查看服务状态 +sudo systemctl status mond.service + +# 查看实时日志 +sudo journalctl -u mond -f + +# 停止服务 +sudo systemctl stop mond.service + +# 禁用服务 +sudo systemctl disable mond.service +``` + +## 配置和日志位置 + +### Debian/Ubuntu 系统包 + +- **二进制文件**: `/opt/mond/mond` +- **数据目录**: `/var/lib/mond/` +- **日志目录**: `/var/log/mond/` + +### 通用二进制包 + +- **二进制文件**: 当前目录下的 `mond` +- **数据目录**: 默认为当前用户主目录下的 `.mond` +- **日志目录**: 由 `--log-file` 参数指定,默认为控制台输出 \ No newline at end of file diff --git a/llmdoc/index.md b/llmdoc/index.md new file mode 100644 index 0000000..bc8aa59 --- /dev/null +++ b/llmdoc/index.md @@ -0,0 +1,18 @@ +# Mond 项目文档 + +## 概述 +Mond 是一个基于 Monero 的区块链项目,专注于隐私和去中心化。 + +## 文档导航 + +### 项目概览 +- [项目背景](/overview/project-overview.md) + +### 构建指南 +- [如何构建项目](/guides/how-to-build.md) + +### 架构 +- [构建系统](/architecture/build-system.md) + +### 参考 +- [常见问题](/reference/faq.md) diff --git a/llmdoc/overview/project-overview.md b/llmdoc/overview/project-overview.md new file mode 100644 index 0000000..074266d --- /dev/null +++ b/llmdoc/overview/project-overview.md @@ -0,0 +1,12 @@ +# Mond 项目概览 + +## 1. 项目定位 + +Mond 是一个基于 Monero 区块链技术的开源项目,专注于提供更加安全、私密的去中心化交易解决方案。 + +## 2. 核心特点 + +- 高度私密的交易机制 +- 基于 Monero 核心技术 +- 跨平台支持(Ubuntu, Alpine Linux, amd64/arm64) +- 灵活的构建系统 diff --git a/llmdoc/reference/configuration.md b/llmdoc/reference/configuration.md new file mode 100644 index 0000000..36fc7cb --- /dev/null +++ b/llmdoc/reference/configuration.md @@ -0,0 +1,159 @@ +# Mond 配置参考 + +## 配置文件 + +### Debian/Ubuntu 系统包配置文件 + +Debian/Ubuntu 系统包安装后,Mond 使用配置文件方式运行: + +- **配置文件位置**: `/var/lib/mond/params.conf` +- **配置文件格式**: INI 格式,每行一个配置项 +- **修改后生效**: 修改配置文件后需要重启服务 + +```bash +# 编辑配置文件 +sudo nano /var/lib/mond/params.conf + +# 重启服务使配置生效 +sudo systemctl restart mond.service +``` + +### 配置文件示例 + +```ini +# 数据目录 +data-dir=/var/lib/mond/data + +# 区块链修剪 +prune-blockchain=1 + +# ZMQ 发布端口 +zmq-pub=tcp://127.0.0.1:18083 + +# 网络对等节点设置 +out-peers=32 +in-peers=64 + +# 优先节点 +add-priority-node=p2pmd.xmrvsbeast.com:18080 +add-priority-node=nodes.hashvault.pro:18080 + +# DNS 检查点和黑名单 +enforce-dns-checkpointing=1 +enable-dns-blocklist=1 + +# P2P 和 RPC 绑定设置 +#p2p-bind-ip=0.0.0.0 +#p2p-bind-port=18080 +#rpc-bind-ip=0.0.0.0 +#rpc-bind-port=18081 +#confirm-external-bind=1 + +# RPC 认证 +#rpc-login=user:password + +# 启用 RPC SSL +#rpc-ssl=1 +#rpc-ssl-certificate=/path/to/your/certificate.pem +#rpc-ssl-private-key=/path/to/your/private_key.pem + +# 日志设置 +log-level=1 +log-file=/var/log/mond/mond.log +``` + +### 配置文件保护 + +配置文件在以下情况下**不会被覆盖**: +- 执行 `apt upgrade` 升级 mond 包时 +- 重新安装 mond 包时 + +这确保了您的自定义配置不会在更新时丢失。 + +## 命令行选项 + +### 使用配置文件 + +```bash +--config-file # 指定配置文件路径(推荐) +``` + +### 数据和日志控制 + +```bash +--data-dir # 指定数据目录 +--log-file # 指定日志文件路径 +--log-level # 日志级别 (0-4) +--detach # 后台运行 +``` + +### 网络配置 + +```bash +--rpc-bind-ip # RPC 绑定 IP (默认: 127.0.0.1) +--rpc-bind-port # RPC 绑定端口 (默认: 18081) +--p2p-bind-ip # P2P 绑定 IP (默认: 0.0.0.0) +--p2p-bind-port # P2P 绑定端口 (默认: 18080) +``` + +**注意**: 命令行参数会覆盖配置文件中的对应设置。 + +## 目录结构 + +### Debian/Ubuntu 系统包 + +``` +/opt/mond/mond # 二进制文件 +/var/lib/mond/params.conf # 配置文件 +/var/lib/mond/data/ # 区块链数据目录 +/var/log/mond/ # 日志目录 +``` + +### 通用二进制包 + +``` +./mond # 二进制文件 +~/.mond/ # 默认数据目录 +``` + +## Systemd 服务配置 + +### 服务文件位置 + +`/lib/systemd/system/mond.service` + +### 关键配置段 + +```ini +[Service] +WorkingDirectory=/opt/mond +# 使用配置文件启动 +ExecStart=/opt/mond/mond --config-file=/var/lib/mond/params.conf --non-interactive +User=mond +Group=mond + +# 安全设置 +NoNewPrivileges=true +PrivateTmp=true +ProtectSystem=strict +ProtectHome=true +ReadWritePaths=/var/lib/mond /var/lib/mond/data /var/log/mond +``` + +### 修改服务配置 + +systemd 服务文件使用 `--config-file` 参数,所有运行时配置都在配置文件中设置。 + +如需修改服务配置: +1. 编辑配置文件:`sudo nano /var/lib/mond/params.conf` +2. 重启服务:`sudo systemctl restart mond.service` + +**不建议**直接修改 systemd 服务文件,因为包更新时可能会被覆盖。 + +## 日志级别 + +- `0`: 仅记录关键错误 +- `1`: 记录错误和警告 +- `2`: 标准日志级别(默认) +- `3`: 详细日志 +- `4`: 调试级别(最详细) \ No newline at end of file diff --git a/llmdoc/reference/faq.md b/llmdoc/reference/faq.md new file mode 100644 index 0000000..7ccca68 --- /dev/null +++ b/llmdoc/reference/faq.md @@ -0,0 +1,20 @@ +# Mond 项目常见问题解答 + +## 构建问题 + +### Q1: 编译时出现 Boost 组件缺失错误 +**解决方案:** +- 确保安装所有必需的 Boost 组件 +- Alpine Linux 需要额外安装 boost-static 和具体组件包 + +### Q2: 版本宏定义错误 +**解决方案:** +- 检查 init.sh 脚本 +- 确保使用正确的 sed 替换命令 +- 全局替换 MONERO_VERSION 为 MOND_VERSION + +### Q3: CMake 构建失败 +**排查步骤:** +1. 验证 CMake 版本兼容性 +2. 检查依赖库安装情况 +3. 确认编译器版本支持