Files
mond/README.md
T
wangdefaandClaude Opus 4.8 b44b118be7
Build and Release Mond / release (push) Successful in 19s
Build and Release Mond / build-and-test (amd64) (push) Successful in 4m11s
Build and Release Mond / build-and-test (arm64) (push) Successful in 9m19s
改用 musl 全静态构建,零依赖跨发行版
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 12:03:43 +08:00

5.9 KiB
Raw Blame History

Mond

Monero daemon 的定制版本

License Build Status

🎯 主要特性

  • 🏗️ 多架构支持 - 原生支持 AMD64 和 ARM64 架构
  • 📦 多种安装方式 - 提供 Debian 包和通用二进制包
  • 🐧 跨发行版 - musl 纯静态二进制,glibc/musl 任意发行版(Ubuntu/Debian/CentOS/Alpine)直接运行
  • 🔗 零依赖 - 所有库(boost/OpenSSL/ZMQ/sodium/unbound 及 libc)全部静态链入,ldd 显示 statically linked,无任何动态依赖
  • 🔒 隐私优先 - 基于 Monero 的隐私保护技术
  • 🔄 自动更新 - 通过 Debian 仓库轻松安装和更新

🚀 快速开始

Debian/Ubuntu(推荐)

# 下载 GPG 密钥
sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key -o /etc/apt/keyrings/gitea-wangdefa.asc

# 添加仓库
echo "deb [signed-by=/etc/apt/keyrings/gitea-wangdefa.asc] https://gitea.bcde.io/api/packages/wangdefa/debian stable main" | sudo tee -a /etc/apt/sources.list.d/wangdefa.list

# 更新并安装
sudo apt-get update
sudo apt-get install mond

方式二:通用二进制包

# 1. 下载对应架构的包(registry 路径与下载名版本号均不带 v 前缀)
wget https://gitea.bcde.io/api/packages/wangdefa/generic/mond/0.18.5.0/mond-amd64-linux-static-0.18.5.0.tar.gz

# 2. 解压
tar -xzf mond-amd64-linux-static-0.18.5.0.tar.gz

# 3. 运行
./mond --help

📋 使用说明

Debian/Ubuntu 系统服务

启动服务

# 启用并启动服务
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

直接运行

# 基本运行
./mond

# 指定数据目录
./mond --data-dir=/path/to/data

# 指定日志文件
./mond --log-file=/path/to/log

# 后台运行
./mond --detach

⚙️ 配置说明

目录结构

Debian/Ubuntu 系统包

/opt/mond/mond                  # 二进制文件
/etc/mond/params.conf           # 配置文件
/var/lib/mond/data/             # 区块链数据目录
/var/log/mond/                  # 日志目录

修改配置

Debian/Ubuntu 系统包使用配置文件方式运行,修改配置非常简单:

# 1. 编辑配置文件
sudo nano /etc/mond/params.conf

# 2. 重启服务使配置生效
sudo systemctl restart mond.service

优势:配置文件在升级时不会被覆盖,您的自定义设置会被保留。

通用二进制包

./mond                          # 二进制文件

常用命令行选项

--data-dir <path>              # 指定数据目录
--log-file <path>              # 指定日志文件路径
--log-level <level>            # 日志级别 (0-4)
--detach                       # 后台运行
--rpc-bind-ip <ip>            # RPC 绑定 IP (默认: 127.0.0.1)
--rpc-bind-port <port>        # RPC 绑定端口 (默认: 18081)
--p2p-bind-ip <ip>            # P2P 绑定 IP (默认: 0.0.0.0)
--p2p-bind-port <port>        # P2P 绑定端口 (默认: 18080)

🔄 修改内容

本项目基于 Monero 进行以下修改:

  1. 项目重命名moneromond
  2. 二进制文件名monerodmond
  3. 版本标识MONERO_*MOND_*

所有修改通过 init.sh 在构建过程中自动应用。

🏗️ 构建说明

Docker 构建(推荐)

本项目使用 Docker + Alpine/musl 构建:手动源码编译 5 个静态库(OpenSSL/libsodium/libzmq/expat/unbound)并 patch monero CMakeLists,产出 static-pie 纯静态二进制(零外部依赖、跨发行版)。

构建多架构二进制文件

# 构建 amd64 和 arm64 架构
docker buildx build --platform linux/amd64,linux/arm64 \
  -f docker/Dockerfile \
  --output type=local,dest=./output .

构建单一架构

# 仅构建 amd64
docker buildx build --platform linux/amd64 \
  -f docker/Dockerfile \
  --output type=local,dest=./output .

# 仅构建 arm64
docker buildx build --platform linux/arm64 \
  -f docker/Dockerfile \
  --output type=local,dest=./output .

验证依赖

# 纯静态校验:应输出 "statically linked"(零外部依赖,可在 glibc/musl 任意发行版运行)
ldd output/linux_amd64/mond
# 预期: statically linked

本地构建

纯静态构建需在 Alpine 下手编 5 个静态库(OpenSSL/libsodium/libzmq/expat/unbound)并 patch monero CMakeLists,步骤已固化在 docker/Dockerfile——直接用上面的 Docker 构建即可,无需手动复现。换名 + patch 逻辑见 init.sh

构建环境要求

  • 构建镜像: alpine:3.23Dockerfile 内置,无需本机安装)
  • CPU: 多核 CPUmake daemon 约 7 分钟/架构,5 库命中缓存后)
  • 内存: 至少 4GB RAM
  • 磁盘: 至少 10GB 可用空间
  • Docker: 需安装 Docker 和 buildx

📝 许可证

本项目基于 BSD-3-Clause 许可证开源。

  • 原始项目:Monero (BSD-3-Clause)
  • 修改内容:详见 init.sh

🙏 致谢

⚠️ 免责声明

本软件仅供学习和研究使用。使用本软件进行任何活动请遵守当地法律法规。作者不对使用本软件造成的任何损失或法律问题负责。

📞 支持

如有问题或建议,请通过以下方式联系:

  • 提交 Issue
  • 发送 Pull Request

注意:本项目是 Monero 的定制版本,不代表官方 Monero 项目。