feat: 优化 Debian 打包配置并初始化项目文档系统
- 简化 mond.service 配置,改为通过配置文件启动 - 优化 postinst 安装脚本,自动生成配置文件模板 - 优化 postrm 卸载脚本,正确清理数据目录 - 初始化 llmdoc 文档系统,包含项目概览、使用指南、架构说明和参考文档 - 更新 README.md 构建和配置说明 - 移除 .gitignore 中 llmdoc/ 的忽略规则
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,7 +1,6 @@
|
||||
# Claude Code
|
||||
.mcp.json
|
||||
.claude/
|
||||
llmdoc/
|
||||
|
||||
example/
|
||||
.source/
|
||||
17
README.md
17
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
|
||||
```
|
||||
|
||||
**优势**:配置文件在升级时不会被覆盖,您的自定义设置会被保留。
|
||||
|
||||
#### 通用二进制包
|
||||
|
||||
```
|
||||
|
||||
16
debian/mond.service
vendored
16
debian/mond.service
vendored
@@ -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
|
||||
|
||||
90
debian/postinst
vendored
90
debian/postinst
vendored
@@ -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
|
||||
|
||||
11
debian/postrm
vendored
11
debian/postrm
vendored
@@ -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)
|
||||
|
||||
38
llmdoc/architecture/build-system.md
Normal file
38
llmdoc/architecture/build-system.md
Normal file
@@ -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 构建流程
|
||||
- 检查系统兼容性
|
||||
- 链接必要库
|
||||
- 生成可执行文件
|
||||
41
llmdoc/architecture/cicd-pipeline.md
Normal file
41
llmdoc/architecture/cicd-pipeline.md
Normal file
@@ -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. 设计原理
|
||||
|
||||
- **可移植性:** 支持多架构和发行版
|
||||
- **自动化:** 减少手动干预
|
||||
- **一致性:** 标准化构建和发布流程
|
||||
59
llmdoc/architecture/packaging.md
Normal file
59
llmdoc/architecture/packaging.md
Normal file
@@ -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 提供健壮的服务管理
|
||||
27
llmdoc/guides/how-to-build.md
Normal file
27
llmdoc/guides/how-to-build.md
Normal file
@@ -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 版本兼容性
|
||||
- 验证编译器支持情况
|
||||
62
llmdoc/guides/how-to-install.md
Normal file
62
llmdoc/guides/how-to-install.md
Normal file
@@ -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 运行时环境
|
||||
64
llmdoc/guides/how-to-release.md
Normal file
64
llmdoc/guides/how-to-release.md
Normal file
@@ -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
|
||||
55
llmdoc/guides/how-to-use.md
Normal file
55
llmdoc/guides/how-to-use.md
Normal file
@@ -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` 参数指定,默认为控制台输出
|
||||
18
llmdoc/index.md
Normal file
18
llmdoc/index.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Mond 项目文档
|
||||
|
||||
## 概述
|
||||
Mond 是一个基于 Monero 的区块链项目,专注于隐私和去中心化。
|
||||
|
||||
## 文档导航
|
||||
|
||||
### 项目概览
|
||||
- [项目背景](/overview/project-overview.md)
|
||||
|
||||
### 构建指南
|
||||
- [如何构建项目](/guides/how-to-build.md)
|
||||
|
||||
### 架构
|
||||
- [构建系统](/architecture/build-system.md)
|
||||
|
||||
### 参考
|
||||
- [常见问题](/reference/faq.md)
|
||||
12
llmdoc/overview/project-overview.md
Normal file
12
llmdoc/overview/project-overview.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Mond 项目概览
|
||||
|
||||
## 1. 项目定位
|
||||
|
||||
Mond 是一个基于 Monero 区块链技术的开源项目,专注于提供更加安全、私密的去中心化交易解决方案。
|
||||
|
||||
## 2. 核心特点
|
||||
|
||||
- 高度私密的交易机制
|
||||
- 基于 Monero 核心技术
|
||||
- 跨平台支持(Ubuntu, Alpine Linux, amd64/arm64)
|
||||
- 灵活的构建系统
|
||||
159
llmdoc/reference/configuration.md
Normal file
159
llmdoc/reference/configuration.md
Normal file
@@ -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 <path> # 指定配置文件路径(推荐)
|
||||
```
|
||||
|
||||
### 数据和日志控制
|
||||
|
||||
```bash
|
||||
--data-dir <path> # 指定数据目录
|
||||
--log-file <path> # 指定日志文件路径
|
||||
--log-level <level> # 日志级别 (0-4)
|
||||
--detach # 后台运行
|
||||
```
|
||||
|
||||
### 网络配置
|
||||
|
||||
```bash
|
||||
--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)
|
||||
```
|
||||
|
||||
**注意**: 命令行参数会覆盖配置文件中的对应设置。
|
||||
|
||||
## 目录结构
|
||||
|
||||
### 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`: 调试级别(最详细)
|
||||
20
llmdoc/reference/faq.md
Normal file
20
llmdoc/reference/faq.md
Normal file
@@ -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. 确认编译器版本支持
|
||||
Reference in New Issue
Block a user