feat: 优化 Debian 打包配置并初始化项目文档系统
All checks were successful
Build and Release Mond / build-and-test (arm64) (push) Successful in 4s
Build and Release Mond / build-and-test (amd64) (push) Successful in 14s
Build and Release Mond / release (push) Successful in 37s

- 简化 mond.service 配置,改为通过配置文件启动
- 优化 postinst 安装脚本,自动生成配置文件模板
- 优化 postrm 卸载脚本,正确清理数据目录
- 初始化 llmdoc 文档系统,包含项目概览、使用指南、架构说明和参考文档
- 更新 README.md 构建和配置说明
- 移除 .gitignore 中 llmdoc/ 的忽略规则
This commit is contained in:
2025-12-24 08:59:06 +08:00
parent 78f66b3c23
commit ff86a4e2bf
16 changed files with 651 additions and 39 deletions

View 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
View 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. 确认编译器版本支持