Compare commits
8 Commits
8014002dff
...
v0.18.4.4
| Author | SHA1 | Date | |
|---|---|---|---|
| b491d8af32 | |||
| b13d06aae7 | |||
| ff86a4e2bf | |||
| 78f66b3c23 | |||
| 9e57ed1690 | |||
| 89f909606c | |||
| 7f537a420f | |||
| 66ec4df557 |
@@ -18,7 +18,6 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
arch: [amd64, arm64]
|
arch: [amd64, arm64]
|
||||||
distro: [ubuntu, alpine]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
@@ -38,8 +37,9 @@ jobs:
|
|||||||
PLATFORM="linux/${{ matrix.arch }}"
|
PLATFORM="linux/${{ matrix.arch }}"
|
||||||
|
|
||||||
echo "🏗️ Building ${PLATFORM} on native ${{ matrix.arch }} runner"
|
echo "🏗️ Building ${PLATFORM} on native ${{ matrix.arch }} runner"
|
||||||
echo "📦 Distribution: ${{ matrix.distro }}"
|
echo "📦 Using Ubuntu 20.04 with depends system"
|
||||||
echo "📦 Monero Version: ${MONERO_VERSION}"
|
echo "📦 Monero Version: ${MONERO_VERSION}"
|
||||||
|
echo "🔗 Static linking enabled"
|
||||||
|
|
||||||
# 设置 BuildKit 优化参数
|
# 设置 BuildKit 优化参数
|
||||||
export BUILDKIT_PROGRESS=plain
|
export BUILDKIT_PROGRESS=plain
|
||||||
@@ -48,19 +48,14 @@ jobs:
|
|||||||
--platform ${PLATFORM} \
|
--platform ${PLATFORM} \
|
||||||
--build-arg MONERO_VERSION=${MONERO_VERSION} \
|
--build-arg MONERO_VERSION=${MONERO_VERSION} \
|
||||||
--output type=local,dest=./output \
|
--output type=local,dest=./output \
|
||||||
-f docker/Dockerfile.${{ matrix.distro }} .
|
-f docker/Dockerfile.ubuntu .
|
||||||
|
|
||||||
- name: Package and test
|
- name: Package and test
|
||||||
run: |
|
run: |
|
||||||
DIR="./output/linux_${{ matrix.arch }}"
|
DIR="./output/linux_${{ matrix.arch }}"
|
||||||
|
|
||||||
if [ ! -d "$DIR" ]; then
|
|
||||||
echo "❌ 构建输出目录不存在: $DIR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
VERSION=${MONERO_VERSION#v} # 移除前导 v
|
VERSION=${MONERO_VERSION#v} # 移除前导 v
|
||||||
TARGZ="${PRODUCT_NAME}-${{ matrix.arch }}-${{ matrix.distro }}-${VERSION}.tar.gz"
|
TARGZ="${PRODUCT_NAME}-${{ matrix.arch }}-ubuntu-${VERSION}.tar.gz"
|
||||||
|
|
||||||
tar -czf "${TARGZ}" -C "$DIR" .
|
tar -czf "${TARGZ}" -C "$DIR" .
|
||||||
|
|
||||||
echo "📦 Created package: ${TARGZ}"
|
echo "📦 Created package: ${TARGZ}"
|
||||||
@@ -72,7 +67,6 @@ jobs:
|
|||||||
rm -rf test
|
rm -rf test
|
||||||
|
|
||||||
- name: Build Debian package
|
- name: Build Debian package
|
||||||
if: matrix.distro == 'ubuntu'
|
|
||||||
run: |
|
run: |
|
||||||
# 安装 dpkg-deb(如果需要)
|
# 安装 dpkg-deb(如果需要)
|
||||||
sudo apt-get update && sudo apt-get install -y dpkg-dev
|
sudo apt-get update && sudo apt-get install -y dpkg-dev
|
||||||
@@ -88,7 +82,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: https://github.com/ChristopherHX/gitea-upload-artifact@v4
|
- uses: https://github.com/ChristopherHX/gitea-upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: binaries-${{ matrix.arch }}-${{ matrix.distro }}
|
name: binaries-${{ matrix.arch }}
|
||||||
path: |
|
path: |
|
||||||
*.tar.gz
|
*.tar.gz
|
||||||
*.deb
|
*.deb
|
||||||
@@ -136,29 +130,19 @@ jobs:
|
|||||||
}
|
}
|
||||||
done
|
done
|
||||||
|
|
||||||
# 上传 Debian 包到 Debian Package Registry (支持多个发行版)
|
# 上传 Debian 包到 Debian Package Registry (通用稳定版)
|
||||||
echo ""
|
echo ""
|
||||||
echo "📦 上传 Debian 包到 Debian Package Registry..."
|
echo "📦 上传 Debian 包到 Debian Package Registry..."
|
||||||
for file in *.deb; do
|
for file in *.deb; do
|
||||||
[ ! -f "$file" ] && continue
|
[ ! -f "$file" ] && continue
|
||||||
|
|
||||||
# 上传到 bookworm (Debian 12)
|
# 上传到 stable (通用稳定版)
|
||||||
echo " ⬆️ $file → bookworm"
|
echo " ⬆️ $file → stable"
|
||||||
curl -fsSL -X PUT \
|
curl -fsSL -X PUT \
|
||||||
-H "Authorization: token ${TOKEN}" \
|
-H "Authorization: token ${TOKEN}" \
|
||||||
--upload-file "$file" \
|
--upload-file "$file" \
|
||||||
"https://${REGISTRY}/api/packages/${OWNER}/debian/pool/bookworm/main/upload" || {
|
"https://${REGISTRY}/api/packages/${OWNER}/debian/pool/stable/main/upload" || {
|
||||||
echo "❌ Debian 包上传失败: $file (bookworm)"
|
echo "❌ Debian 包上传失败: $file (stable)"
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# 上传到 trixie (Debian 13)
|
|
||||||
echo " ⬆️ $file → trixie"
|
|
||||||
curl -fsSL -X PUT \
|
|
||||||
-H "Authorization: token ${TOKEN}" \
|
|
||||||
--upload-file "$file" \
|
|
||||||
"https://${REGISTRY}/api/packages/${OWNER}/debian/pool/trixie/main/upload" || {
|
|
||||||
echo "❌ Debian 包上传失败: $file (trixie)"
|
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
done
|
done
|
||||||
@@ -168,7 +152,7 @@ jobs:
|
|||||||
echo "📝 生成 Release..."
|
echo "📝 生成 Release..."
|
||||||
|
|
||||||
export REGISTRY OWNER TAG
|
export REGISTRY OWNER TAG
|
||||||
RELEASE_DATA=$(python3 -c 'import json,glob,os;r=os.environ["REGISTRY"];o=os.environ["OWNER"];p=os.environ["PRODUCT_NAME"];t=os.environ["TAG"];b=["## Release "+t,"","Mond is a customized build of Monero daemon (monerod).","","### 📥 Download Methods","","#### Method 1: Direct Download (Recommended)","","Click on the file names in the **Assets** section below to download directly.","","#### Method 2: Generic Package Registry",""]+[f"- [`{f}`](https://{r}/api/packages/{o}/generic/{p}/{t}/{f})" for f in sorted(glob.glob("*.tar.gz"))]+["","#### Method 3: Debian Repository","","**Debian 12 (bookworm):**","","```bash","# Download GPG key",f"sudo curl https://{r}/api/packages/{o}/debian/repository.key -o /etc/apt/keyrings/gitea-{o}.asc","","# Add repository",f"echo \"deb [signed-by=/etc/apt/keyrings/gitea-{o}.asc] https://{r}/api/packages/{o}/debian bookworm main\" | sudo tee -a /etc/apt/sources.list.d/{o}.list","","# Update and install","sudo apt-get update","sudo apt-get install mond","```","","**Debian 13 (trixie):**","","```bash","# Download GPG key",f"sudo curl https://{r}/api/packages/{o}/debian/repository.key -o /etc/apt/keyrings/gitea-{o}.asc","","# Add repository",f"echo \"deb [signed-by=/etc/apt/keyrings/gitea-{o}.asc] https://{r}/api/packages/{o}/debian trixie main\" | sudo tee -a /etc/apt/sources.list.d/{o}.list","","# Update and install","sudo apt-get update","sudo apt-get install mond","```"];print(json.dumps({"tag_name":t,"name":f"Release {t}","body":"\n".join(b),"draft":False,"prerelease":False}))')
|
RELEASE_DATA=$(python3 -c 'import json,glob,os;r=os.environ["REGISTRY"];o=os.environ["OWNER"];p=os.environ["PRODUCT_NAME"];t=os.environ["TAG"];b=["## Release "+t,"","Mond 是 Monero 守护进程 (monerod) 的定制版本。","","### ✨ 主要特性","","- 🔗 **纯静态链接** - 无需依赖,可在任意 Linux 系统运行","- 🏗️ **多架构支持** - 原生支持 AMD64 和 ARM64","- 📦 **官方构建系统** - 使用 Monero 官方 depends 系统构建,确保可靠性","","### 📥 下载方式","","#### 方式一:直接下载(推荐)","","点击下方 **Assets** 区域的文件名直接下载。","","**可用安装包:**",""]+[f"- [`{f}`](https://{r}/api/packages/{o}/generic/{p}/{t}/{f})" for f in sorted(glob.glob("*.tar.gz"))]+["","#### 方式二:通用软件包仓库","","通过命令行下载:",""]+[f"```bash\nwget https://{r}/api/packages/{o}/generic/{p}/{t}/{f}\n```" for f in sorted(glob.glob("*.tar.gz"))[:1]]+["","#### 方式三:Debian 软件源","","```bash","# 下载 GPG 密钥",f"sudo curl https://{r}/api/packages/{o}/debian/repository.key -o /etc/apt/keyrings/gitea-{o}.asc","","# 添加软件源",f"echo \"deb [signed-by=/etc/apt/keyrings/gitea-{o}.asc] https://{r}/api/packages/{o}/debian stable main\" | sudo tee -a /etc/apt/sources.list.d/{o}.list","","# 更新并安装","sudo apt-get update","sudo apt-get install mond","```"];print(json.dumps({"tag_name":t,"name":f"Release {t}","body":"\n".join(b),"draft":False,"prerelease":False}))')
|
||||||
|
|
||||||
# 创建 Release
|
# 创建 Release
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,7 +1,6 @@
|
|||||||
# Claude Code
|
# Claude Code
|
||||||
.mcp.json
|
.mcp.json
|
||||||
.claude/
|
.claude/
|
||||||
llmdoc/
|
|
||||||
|
|
||||||
example/
|
example/
|
||||||
.source/
|
.source/
|
||||||
130
README.md
130
README.md
@@ -9,42 +9,23 @@
|
|||||||
|
|
||||||
- 🏗️ **多架构支持** - 原生支持 AMD64 和 ARM64 架构
|
- 🏗️ **多架构支持** - 原生支持 AMD64 和 ARM64 架构
|
||||||
- 📦 **多种安装方式** - 提供 Debian 包和通用二进制包
|
- 📦 **多种安装方式** - 提供 Debian 包和通用二进制包
|
||||||
- 🐧 **多发行版兼容** - 支持 Ubuntu、Debian 和 Alpine Linux
|
- 🐧 **多发行版兼容** - 支持 Ubuntu 和 Debian
|
||||||
|
- 🔗 **纯静态链接** - 无需依赖,可在任意 Linux 系统运行
|
||||||
- 🔒 **隐私优先** - 基于 Monero 的隐私保护技术
|
- 🔒 **隐私优先** - 基于 Monero 的隐私保护技术
|
||||||
- 🔄 **自动更新** - 通过 Debian 仓库轻松安装和更新
|
- 🔄 **自动更新** - 通过 Debian 仓库轻松安装和更新
|
||||||
|
|
||||||
## 🚀 快速开始
|
## 🚀 快速开始
|
||||||
|
|
||||||
### 方式一:Debian/Ubuntu(推荐)
|
### Debian/Ubuntu(推荐)
|
||||||
|
|
||||||
#### Debian 12 (Bookworm)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. 下载并添加 GPG 密钥
|
# 下载 GPG 密钥
|
||||||
sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key \
|
sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key -o /etc/apt/keyrings/gitea-wangdefa.asc
|
||||||
-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" | \
|
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 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 update
|
||||||
sudo apt-get install mond
|
sudo apt-get install mond
|
||||||
```
|
```
|
||||||
@@ -53,10 +34,10 @@ sudo apt-get install mond
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. 下载对应架构的包
|
# 1. 下载对应架构的包
|
||||||
wget https://gitea.bcde.io/releases/download/VERSION/mond-amd64-ubuntu-VERSION.tar.gz
|
wget https://gitea.bcde.io/releases/download/v0.18.4.4/mond-amd64-ubuntu-v0.18.4.4.tar.gz
|
||||||
|
|
||||||
# 2. 解压
|
# 2. 解压
|
||||||
tar -xzf mond-amd64-ubuntu-VERSION.tar.gz
|
tar -xzf mond-amd64-ubuntu-v0.18.4.4.tar.gz
|
||||||
|
|
||||||
# 3. 运行
|
# 3. 运行
|
||||||
./mond --help
|
./mond --help
|
||||||
@@ -111,10 +92,25 @@ sudo systemctl disable mond.service
|
|||||||
|
|
||||||
```
|
```
|
||||||
/opt/mond/mond # 二进制文件
|
/opt/mond/mond # 二进制文件
|
||||||
/var/lib/mond/ # 区块链数据目录
|
/var/lib/mond/params.conf # 配置文件
|
||||||
|
/var/lib/mond/data/ # 区块链数据目录
|
||||||
/var/log/mond/ # 日志目录
|
/var/log/mond/ # 日志目录
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 修改配置
|
||||||
|
|
||||||
|
Debian/Ubuntu 系统包使用配置文件方式运行,修改配置非常简单:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 编辑配置文件
|
||||||
|
sudo nano /var/lib/mond/params.conf
|
||||||
|
|
||||||
|
# 2. 重启服务使配置生效
|
||||||
|
sudo systemctl restart mond.service
|
||||||
|
```
|
||||||
|
|
||||||
|
**优势**:配置文件在升级时不会被覆盖,您的自定义设置会被保留。
|
||||||
|
|
||||||
#### 通用二进制包
|
#### 通用二进制包
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -146,35 +142,75 @@ sudo systemctl disable mond.service
|
|||||||
|
|
||||||
## 🏗️ 构建说明
|
## 🏗️ 构建说明
|
||||||
|
|
||||||
### 本地构建
|
### Docker 构建(推荐)
|
||||||
|
|
||||||
|
本项目使用 Docker 和官方 depends 系统构建,确保纯静态链接。
|
||||||
|
|
||||||
|
#### 构建多架构二进制文件
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. 克隆源代码
|
# 构建 amd64 和 arm64 架构
|
||||||
git clone .source
|
docker buildx build --platform linux/amd64,linux/arm64 \
|
||||||
|
-f docker/Dockerfile.ubuntu \
|
||||||
|
--output type=local,dest=./output .
|
||||||
|
```
|
||||||
|
|
||||||
# 2. 运行修改脚本
|
#### 构建单一架构
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 仅构建 amd64
|
||||||
|
docker buildx build --platform linux/amd64 \
|
||||||
|
-f docker/Dockerfile.ubuntu \
|
||||||
|
--output type=local,dest=./output .
|
||||||
|
|
||||||
|
# 仅构建 arm64
|
||||||
|
docker buildx build --platform linux/arm64 \
|
||||||
|
-f docker/Dockerfile.ubuntu \
|
||||||
|
--output type=local,dest=./output .
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 验证静态链接
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 检查二进制文件是否为纯静态链接
|
||||||
|
ldd output/linux_amd64/mond
|
||||||
|
# 预期输出: "not a dynamic executable"
|
||||||
|
|
||||||
|
file output/linux_amd64/mond
|
||||||
|
# 预期输出: "statically linked"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 本地构建
|
||||||
|
|
||||||
|
如果不使用 Docker,可以手动构建:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 克隆并准备源代码
|
||||||
|
git clone https://github.com/monero-project/monero.git .source
|
||||||
cd .source
|
cd .source
|
||||||
|
git checkout v0.18.3.4
|
||||||
|
git submodule update --init --force
|
||||||
|
|
||||||
|
# 2. 应用修改
|
||||||
../init.sh
|
../init.sh
|
||||||
|
|
||||||
# 3. 构建
|
# 3. 使用 depends 系统构建(推荐)
|
||||||
|
make -j$(nproc) depends target=x86_64-linux-gnu
|
||||||
|
# 二进制文件位于: build/x86_64-linux-gnu/release/bin/mond
|
||||||
|
|
||||||
|
# 或者简单构建(需要手动安装依赖)
|
||||||
mkdir -p build/release && cd build/release
|
mkdir -p build/release && cd build/release
|
||||||
cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI_DEPS=OFF
|
cmake ../.. -DCMAKE_BUILD_TYPE=Release -DBUILD_GUI_DEPS=OFF
|
||||||
make -j$(nproc) daemon
|
make -j$(nproc) daemon
|
||||||
```
|
```
|
||||||
|
|
||||||
### Docker 构建
|
### 构建环境要求
|
||||||
|
|
||||||
```bash
|
- **操作系统**: Ubuntu 20.04(推荐)或更新版本
|
||||||
# Ubuntu 构建
|
- **CPU**: 多核 CPU(构建时间约 30-60 分钟)
|
||||||
docker buildx build --platform linux/amd64 \
|
- **内存**: 至少 4GB RAM
|
||||||
-f docker/Dockerfile.ubuntu \
|
- **磁盘**: 至少 10GB 可用空间
|
||||||
--output type=local,dest=./output .
|
- **Docker**: 如使用 Docker 构建,需安装 Docker 和 buildx
|
||||||
|
|
||||||
# Alpine 构建
|
|
||||||
docker buildx build --platform linux/amd64 \
|
|
||||||
-f docker/Dockerfile.alpine \
|
|
||||||
--output type=local,dest=./output .
|
|
||||||
```
|
|
||||||
|
|
||||||
## 📝 许可证
|
## 📝 许可证
|
||||||
|
|
||||||
|
|||||||
388
conf/params.example.conf
Normal file
388
conf/params.example.conf
Normal file
@@ -0,0 +1,388 @@
|
|||||||
|
# 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 STORAGE
|
||||||
|
# ============================================================================
|
||||||
|
# data-dir: 区块链数据存储目录
|
||||||
|
# - 包含完整的区块链数据、交易池和节点状态
|
||||||
|
# - 确保该目录所在磁盘有足够空间(完整节点需要 150GB+,修剪节点需要 50GB+)
|
||||||
|
# - 默认位置: ~/.bitmonero (用户安装) 或 /var/lib/mond (系统服务)
|
||||||
|
data-dir=/var/lib/mond/data
|
||||||
|
|
||||||
|
# BLOCKCHAIN PRUNING
|
||||||
|
# ============================================================================
|
||||||
|
# prune-blockchain: 启用区块链修剪模式
|
||||||
|
# - 1 = 启用修剪,只保留最近的区块数据和必要的历史信息
|
||||||
|
# - 0 = 禁用修剪,保留完整的区块链历史(默认)
|
||||||
|
# - 优点: 大幅减少磁盘使用(从 150GB+ 降至 50GB 左右)
|
||||||
|
# - 缺点: 无法向其他节点提供完整的历史区块数据
|
||||||
|
# - 注意: 修剪节点仍然可以完全验证区块链,只是不存储所有旧数据
|
||||||
|
prune-blockchain=1
|
||||||
|
|
||||||
|
# sync-pruned-blocks: 同步修剪后的区块
|
||||||
|
# - 1 = 允许从其他修剪节点同步数据(推荐)
|
||||||
|
# - 0 = 仅从完整节点同步
|
||||||
|
# - 建议与 prune-blockchain=1 一起使用,加速初始同步
|
||||||
|
sync-pruned-blocks=1
|
||||||
|
|
||||||
|
# ZMQ NOTIFICATION SYSTEM
|
||||||
|
# ============================================================================
|
||||||
|
# zmq-pub: ZeroMQ 发布接口,用于实时广播区块链事件
|
||||||
|
# - tcp://IP:PORT 格式指定绑定地址和端口
|
||||||
|
# - 127.0.0.1 = 仅本地访问(推荐,除非需要远程订阅)
|
||||||
|
# - 18083 = 默认 ZMQ 端口(可修改)
|
||||||
|
# - 用途: P2Pool 挖矿、实时监控工具、区块浏览器等
|
||||||
|
# - 发布的事件类型:
|
||||||
|
# * json-full-chain_main: 新区块添加到主链
|
||||||
|
# * json-full-txpool_add: 新交易进入交易池
|
||||||
|
# * json-minimal-chain_main: 简化的新区块信息
|
||||||
|
# * json-minimal-txpool_add: 简化的新交易信息
|
||||||
|
# - 如需外部访问,改为 tcp://0.0.0.0:18083 并添加 confirm-external-bind=1
|
||||||
|
zmq-pub=tcp://127.0.0.1:18083
|
||||||
|
|
||||||
|
# NETWORK PEER SETTINGS
|
||||||
|
# ============================================================================
|
||||||
|
# out-peers: 主动连接的对等节点数量(出站连接)
|
||||||
|
# - 默认: 8,这里设置为 32 可提高网络连接性和同步速度
|
||||||
|
# - 范围: 0-1000,推荐值: 8-64
|
||||||
|
# - 更多出站连接 = 更快的区块传播,但消耗更多带宽和资源
|
||||||
|
out-peers=32
|
||||||
|
|
||||||
|
# in-peers: 接受连接的对等节点数量(入站连接)
|
||||||
|
# - 默认: 无限制,这里设置为 64 可平衡网络贡献和资源消耗
|
||||||
|
# - 范围: 0-无限,推荐值: 32-128
|
||||||
|
# - 入站连接有助于网络去中心化,但需要开放 P2P 端口(18080)
|
||||||
|
in-peers=64
|
||||||
|
|
||||||
|
# limit-rate-up: 上传速率限制(kB/s,千字节/秒)
|
||||||
|
# - 1024 kB/s = 1 MB/s = 8 Mbps
|
||||||
|
# - 默认: 8192 kB/s = 8 MB/s = 64 Mbps
|
||||||
|
# - -1 = 无限制(不推荐,可能耗尽带宽)
|
||||||
|
# - 根据网络带宽调整,建议保留部分带宽给其他应用
|
||||||
|
# - 计算公式: (总上传带宽 Mbps * 1024) / 8 = kB/s
|
||||||
|
# - 示例:
|
||||||
|
# * 10 Mbps 上传 → limit-rate-up=1280 (10 * 1024 / 8)
|
||||||
|
# * 50 Mbps 上传 → limit-rate-up=6400 (50 * 1024 / 8)
|
||||||
|
# * 100 Mbps 上传 → limit-rate-up=12800 (100 * 1024 / 8)
|
||||||
|
limit-rate-up=1048576
|
||||||
|
|
||||||
|
# limit-rate-down: 下载速率限制(kB/s,千字节/秒)
|
||||||
|
# - 1024 kB/s = 1 MB/s = 8 Mbps
|
||||||
|
# - 默认: 32768 kB/s = 32 MB/s = 256 Mbps
|
||||||
|
# - -1 = 无限制(初始同步时推荐)
|
||||||
|
# - 同步完成后可设置限制,节省带宽
|
||||||
|
# - 注意: 限制过低会影响区块同步速度
|
||||||
|
# - 示例:
|
||||||
|
# * 50 Mbps 下载 → limit-rate-down=6400 (50 * 1024 / 8)
|
||||||
|
# * 100 Mbps 下载 → limit-rate-down=12800 (100 * 1024 / 8)
|
||||||
|
# * 无限制(推荐初始同步)→ limit-rate-down=-1
|
||||||
|
limit-rate-down=1048576
|
||||||
|
|
||||||
|
# PRIORITY NODES
|
||||||
|
# ============================================================================
|
||||||
|
# add-priority-node: 优先连接的可信节点
|
||||||
|
# - 格式: 域名:端口 或 IP:端口
|
||||||
|
# - 节点会优先与这些节点建立连接并保持连接
|
||||||
|
# - 用途:
|
||||||
|
# * 加速初始同步(连接到高速节点)
|
||||||
|
# * 提高网络可靠性(连接到稳定节点)
|
||||||
|
# * 优先从可信来源获取区块
|
||||||
|
# - 可以添加多个优先节点(重复使用此选项)
|
||||||
|
# - 这些节点必须开放 P2P 端口(通常是 18080)
|
||||||
|
add-priority-node=p2pmd.xmrvsbeast.com:18080
|
||||||
|
add-priority-node=nodes.hashvault.pro:18080
|
||||||
|
|
||||||
|
# 可以添加更多优先节点:
|
||||||
|
# add-priority-node=node.supportxmr.com:18080
|
||||||
|
# add-priority-node=node.moneroworld.com:18080
|
||||||
|
# add-priority-node=opennode.xmr-tw.org:18080
|
||||||
|
|
||||||
|
# SECURITY AND NETWORK INTEGRITY
|
||||||
|
# ============================================================================
|
||||||
|
# enforce-dns-checkpointing: 强制执行 DNS 检查点验证
|
||||||
|
# - 1 = 启用(推荐),通过 DNS TXT 记录验证区块链检查点
|
||||||
|
# - 0 = 禁用
|
||||||
|
# - 作用: 防止长期离线后被恶意分叉欺骗
|
||||||
|
# - DNS 检查点由 Monero 核心开发者维护
|
||||||
|
# - 安全增强措施,几乎没有缺点
|
||||||
|
enforce-dns-checkpointing=1
|
||||||
|
|
||||||
|
# enable-dns-blocklist: 启用 DNS 黑名单
|
||||||
|
# - 1 = 启用(推荐),阻止连接到已知的恶意节点
|
||||||
|
# - 0 = 禁用
|
||||||
|
# - 黑名单通过 DNS 记录维护,包含:
|
||||||
|
# * Sybil 攻击节点
|
||||||
|
# * 已知的恶意节点
|
||||||
|
# * 降低网络性能的节点
|
||||||
|
# - 提高网络安全性和连接质量
|
||||||
|
enable-dns-blocklist=1
|
||||||
|
|
||||||
|
# P2P AND RPC NETWORK BINDING
|
||||||
|
# ============================================================================
|
||||||
|
# 以下配置控制节点的网络接口绑定
|
||||||
|
# 默认全部注释掉(使用内置默认值)
|
||||||
|
# 根据使用场景取消注释并修改
|
||||||
|
|
||||||
|
# --- P2P 绑定设置 ---
|
||||||
|
# p2p-bind-ip: P2P 网络监听地址
|
||||||
|
# - 0.0.0.0 = 监听所有网络接口(公网+内网+本地)
|
||||||
|
# - 127.0.0.1 = 仅本地访问(不接受外部节点连接)
|
||||||
|
# - 192.168.x.x = 仅内网访问
|
||||||
|
# - 默认: 0.0.0.0(接受所有连接)
|
||||||
|
# 使用场景:
|
||||||
|
# * 公共节点: 0.0.0.0(贡献网络,需开放防火墙 18080 端口)
|
||||||
|
# * 私有节点: 127.0.0.1(不接受入站连接,仅主动连接其他节点)
|
||||||
|
#p2p-bind-ip=0.0.0.0
|
||||||
|
|
||||||
|
# p2p-bind-port: P2P 网络监听端口
|
||||||
|
# - 18080 = 主网默认端口
|
||||||
|
# - 28080 = 测试网 (testnet) 端口
|
||||||
|
# - 38080 = 预发布网 (stagenet) 端口
|
||||||
|
# - 使用非标准端口可以减少扫描攻击,但会降低网络发现性
|
||||||
|
#p2p-bind-port=18080
|
||||||
|
|
||||||
|
# --- RPC 绑定设置 ---
|
||||||
|
# rpc-bind-ip: RPC 接口监听地址
|
||||||
|
# - 0.0.0.0 = 监听所有网络接口(危险!需要配合认证和 SSL)
|
||||||
|
# - 127.0.0.1 = 仅本地访问(推荐,安全)
|
||||||
|
# - 192.168.x.x = 仅内网访问
|
||||||
|
# - 默认: 127.0.0.1(仅本地)
|
||||||
|
# ⚠️ 安全警告:
|
||||||
|
# * RPC 端口有完整控制权限,暴露到公网极度危险!
|
||||||
|
# * 如果必须远程访问,必须配置:
|
||||||
|
# 1. rpc-login (用户名密码)
|
||||||
|
# 2. rpc-ssl (SSL/TLS 加密)
|
||||||
|
# 3. 防火墙规则(限制访问 IP)
|
||||||
|
# * 推荐使用 SSH 隧道代替直接暴露
|
||||||
|
#rpc-bind-ip=0.0.0.0
|
||||||
|
|
||||||
|
# rpc-bind-port: RPC 接口监听端口
|
||||||
|
# - 18081 = 主网默认 RPC 端口
|
||||||
|
# - 28081 = 测试网 RPC 端口
|
||||||
|
# - 38081 = 预发布网 RPC 端口
|
||||||
|
# - 用于本地钱包、P2Pool、管理工具连接
|
||||||
|
#rpc-bind-port=18081
|
||||||
|
|
||||||
|
# --- 公共受限 RPC (推荐用于公共服务) ---
|
||||||
|
# rpc-restricted-bind-ip: 受限 RPC 监听地址
|
||||||
|
# - 仅提供只读 API,不能发送交易或控制节点
|
||||||
|
# - 可以安全绑定到 0.0.0.0 提供公共查询服务
|
||||||
|
# - 不返回隐私敏感数据
|
||||||
|
# 使用场景: 公共区块浏览器、轻钱包后端、查询服务
|
||||||
|
#rpc-restricted-bind-ip=0.0.0.0
|
||||||
|
|
||||||
|
# rpc-restricted-bind-port: 受限 RPC 监听端口
|
||||||
|
# - 推荐使用与标准 RPC 不同的端口(如 18089)
|
||||||
|
# - 可以与标准 RPC 同时运行
|
||||||
|
#rpc-restricted-bind-port=18089
|
||||||
|
|
||||||
|
# --- 启用受限 RPC 模式 ---
|
||||||
|
# restricted-rpc: 将绑定的 RPC 端口设为受限模式
|
||||||
|
# - 必须与 rpc-restricted-bind-port 配合使用
|
||||||
|
# - 限制可用的 RPC 方法,禁止敏感操作
|
||||||
|
#restricted-rpc=1
|
||||||
|
|
||||||
|
# confirm-external-bind: 确认外部网络绑定
|
||||||
|
# - 1 = 明确确认将服务绑定到非本地地址
|
||||||
|
# - 安全措施: 防止误将服务暴露到公网
|
||||||
|
# - 当使用 0.0.0.0 或非 127.0.0.1 地址时必须添加此选项
|
||||||
|
# - 适用于: p2p-bind-ip, rpc-bind-ip, rpc-restricted-bind-ip, zmq-pub
|
||||||
|
#confirm-external-bind=1
|
||||||
|
|
||||||
|
# RPC AUTHENTICATION
|
||||||
|
# ============================================================================
|
||||||
|
# rpc-login: RPC 访问认证凭据
|
||||||
|
# - 格式: username:password
|
||||||
|
# - ⚠️ 强制要求: 当 rpc-bind-ip 不是 127.0.0.1 时必须配置
|
||||||
|
# - 密码要求:
|
||||||
|
# * 至少 16 字符
|
||||||
|
# * 包含大小写字母、数字、特殊字符
|
||||||
|
# * 避免使用字典词汇
|
||||||
|
# - 生成强密码命令:
|
||||||
|
# openssl rand -base64 32
|
||||||
|
# pwgen -s 32 1
|
||||||
|
# - 示例: rpc-login=admin:xK9mP2vL8qR5nW7jT3hY6fB4sD1gA0cE
|
||||||
|
# - 客户端连接示例:
|
||||||
|
# curl -u admin:password http://127.0.0.1:18081/json_rpc
|
||||||
|
# mond-wallet-cli --daemon-address admin:password@node.example.com:18081
|
||||||
|
#rpc-login=user:password
|
||||||
|
|
||||||
|
# RPC SSL/TLS ENCRYPTION
|
||||||
|
# ============================================================================
|
||||||
|
# rpc-ssl: 启用 RPC 连接的 SSL/TLS 加密
|
||||||
|
# - enabled = 强制使用 SSL(推荐用于远程访问)
|
||||||
|
# - disabled = 禁用 SSL(仅本地访问时可用)
|
||||||
|
# - autodetect = 自动检测客户端支持情况(默认)
|
||||||
|
# - ⚠️ 远程访问必须启用 SSL,否则密码明文传输!
|
||||||
|
# - 需要配合 rpc-ssl-certificate 和 rpc-ssl-private-key
|
||||||
|
#rpc-ssl=enabled
|
||||||
|
|
||||||
|
# rpc-ssl-certificate: SSL 证书文件路径
|
||||||
|
# - PEM 格式的 SSL/TLS 证书
|
||||||
|
# - 可以使用自签名证书或由 CA 签发的证书
|
||||||
|
# - 生成自签名证书(仅用于测试):
|
||||||
|
# openssl req -newkey rsa:4096 -nodes -keyout key.pem \
|
||||||
|
# -x509 -days 365 -out cert.pem
|
||||||
|
# - 生产环境推荐使用 Let's Encrypt 免费证书:
|
||||||
|
# certbot certonly --standalone -d your-node.example.com
|
||||||
|
# - Let's Encrypt 证书路径:
|
||||||
|
# /etc/letsencrypt/live/your-domain/fullchain.pem
|
||||||
|
#rpc-ssl-certificate=/path/to/your/certificate.pem
|
||||||
|
|
||||||
|
# rpc-ssl-private-key: SSL 私钥文件路径
|
||||||
|
# - PEM 格式的私钥文件
|
||||||
|
# - ⚠️ 安全要求:
|
||||||
|
# * 文件权限必须是 600 (chmod 600 key.pem)
|
||||||
|
# * 所有者必须是运行 mond 的用户
|
||||||
|
# * 不要将私钥文件暴露到公共位置
|
||||||
|
# - Let's Encrypt 私钥路径:
|
||||||
|
# /etc/letsencrypt/live/your-domain/privkey.pem
|
||||||
|
#rpc-ssl-private-key=/path/to/your/private_key.pem
|
||||||
|
|
||||||
|
# rpc-ssl-ca-certificates: CA 证书路径(可选)
|
||||||
|
# - 用于验证客户端证书(双向 SSL)
|
||||||
|
# - 大多数情况下不需要
|
||||||
|
#rpc-ssl-ca-certificates=/path/to/ca-bundle.pem
|
||||||
|
|
||||||
|
# rpc-ssl-allow-any-cert: 允许任何证书(不推荐)
|
||||||
|
# - 1 = 禁用客户端证书验证
|
||||||
|
# - 0 = 验证客户端证书(默认)
|
||||||
|
# - ⚠️ 仅用于测试,生产环境不要启用
|
||||||
|
#rpc-ssl-allow-any-cert=0
|
||||||
|
|
||||||
|
# rpc-access-control-origins: CORS 跨域访问控制(可选)
|
||||||
|
# - 允许从特定域名的 Web 应用访问 RPC
|
||||||
|
# - 格式: http://domain.com 或多个域名用逗号分隔
|
||||||
|
# - 用于 Web 钱包、区块浏览器等前端应用
|
||||||
|
# - 示例: https://wallet.example.com,https://explorer.example.com
|
||||||
|
# - 使用 * 允许所有域名(不推荐)
|
||||||
|
#rpc-access-control-origins=https://your-domain.com
|
||||||
|
|
||||||
|
# LOGGING SETTINGS
|
||||||
|
# ============================================================================
|
||||||
|
# log-level: 日志详细程度
|
||||||
|
# - 0 = 最小化日志(仅关键错误)
|
||||||
|
# - 1 = 错误级别(推荐用于生产环境)
|
||||||
|
# - 2 = 警告级别(包含潜在问题)
|
||||||
|
# - 3 = 信息级别(当前设置,常规操作信息)
|
||||||
|
# - 4 = 调试级别(详细的调试信息,仅用于故障排查)
|
||||||
|
# - 更高级别 = 更多日志输出,但也消耗更多磁盘 I/O
|
||||||
|
# - 建议:
|
||||||
|
# * 生产环境: 1 或 2
|
||||||
|
# * 开发/调试: 3 或 4
|
||||||
|
# * 初始同步: 3(监控同步进度)
|
||||||
|
log-level=3
|
||||||
|
|
||||||
|
# log-file: 日志文件保存路径
|
||||||
|
# - 所有日志输出将写入此文件
|
||||||
|
# - 确保目录存在且有写入权限
|
||||||
|
# - 文件会自动轮转(达到一定大小后创建新文件)
|
||||||
|
# - 查看日志命令:
|
||||||
|
# tail -f /var/log/mond/mond.log (实时查看)
|
||||||
|
# grep ERROR /var/log/mond/mond.log (搜索错误)
|
||||||
|
# - 日志管理:
|
||||||
|
# * 定期清理旧日志释放磁盘空间
|
||||||
|
# * 可配合 logrotate 自动管理
|
||||||
|
# * 推荐保留最近 7-30 天的日志
|
||||||
|
log-file=/var/log/mond/mond.log
|
||||||
|
|
||||||
|
# max-log-file-size: 单个日志文件最大大小(字节)
|
||||||
|
# - 达到此大小后自动创建新日志文件
|
||||||
|
# - 默认: 104850000 (约 100 MB)
|
||||||
|
# - 推荐值: 10485760 (10 MB) 到 104857600 (100 MB)
|
||||||
|
# - 示例: max-log-file-size=52428800 # 50 MB
|
||||||
|
#max-log-file-size=104850000
|
||||||
|
|
||||||
|
# max-log-files: 保留的日志文件数量
|
||||||
|
# - 超过此数量后删除最旧的日志文件
|
||||||
|
# - 默认: 50
|
||||||
|
# - 计算存储空间: max-log-file-size * max-log-files
|
||||||
|
# - 示例: 如果单文件 50MB,保留 20 个文件 = 1GB 空间
|
||||||
|
#max-log-files=50
|
||||||
|
|
||||||
|
# ADVANCED OPTIONS (COMMENTED OUT)
|
||||||
|
# ============================================================================
|
||||||
|
# 以下是一些高级选项,默认不启用,根据需求取消注释
|
||||||
|
|
||||||
|
# --- 数据库设置 ---
|
||||||
|
# db-sync-mode: 数据库同步模式
|
||||||
|
# - fast:async:250000000bytes = 快速异步模式(默认,推荐)
|
||||||
|
# - fast:sync = 快速同步模式(更安全但稍慢)
|
||||||
|
# - fastest:async:250000000bytes = 最快模式(性能优先)
|
||||||
|
# - safe = 最安全模式(每次写入都刷盘,非常慢)
|
||||||
|
# 影响: 同步速度 vs 断电时的数据完整性
|
||||||
|
#db-sync-mode=fast:async:250000000bytes
|
||||||
|
|
||||||
|
# --- 区块同步设置 ---
|
||||||
|
# block-sync-size: 每次同步请求的区块数量
|
||||||
|
# - 默认: 20
|
||||||
|
# - 范围: 1-100,更大的值可能加快同步但消耗更多内存
|
||||||
|
#block-sync-size=20
|
||||||
|
|
||||||
|
# prep-blocks-threads: 预处理区块的线程数
|
||||||
|
# - 默认: 4
|
||||||
|
# - 根据 CPU 核心数调整,建议为核心数的 50-100%
|
||||||
|
#prep-blocks-threads=4
|
||||||
|
|
||||||
|
# --- 带宽和连接设置 ---
|
||||||
|
# max-txpool-weight: 交易池最大权重(字节)
|
||||||
|
# - 默认: 648000000 (约 618 MB)
|
||||||
|
# - 限制内存中未确认交易的总大小
|
||||||
|
#max-txpool-weight=648000000
|
||||||
|
|
||||||
|
# pad-transactions: 填充交易大小(隐私增强)
|
||||||
|
# - 1 = 启用,将交易填充到标准大小
|
||||||
|
# - 0 = 禁用(默认)
|
||||||
|
# - 增强隐私但增加交易费用
|
||||||
|
#pad-transactions=0
|
||||||
|
|
||||||
|
# --- 挖矿设置 ---
|
||||||
|
# start-mining: 启动时开始挖矿
|
||||||
|
# - 格式: 钱包地址
|
||||||
|
# - 不推荐在 mond 直接挖矿,应使用专用挖矿软件或 P2Pool
|
||||||
|
#start-mining=YOUR_WALLET_ADDRESS
|
||||||
|
|
||||||
|
# mining-threads: 挖矿线程数
|
||||||
|
# - 仅在 start-mining 启用时有效
|
||||||
|
# - 推荐: CPU 核心数的 50-75%
|
||||||
|
#mining-threads=2
|
||||||
|
|
||||||
|
# --- 匿名网络支持 ---
|
||||||
|
# tx-proxy: 通过代理发送交易(增强隐私)
|
||||||
|
# - 格式: socks4a://IP:PORT 或 i2p://address
|
||||||
|
# - 用于通过 Tor/I2P 广播交易
|
||||||
|
# - 示例(Tor): tx-proxy=socks4a://127.0.0.1:9050
|
||||||
|
#tx-proxy=socks4a://127.0.0.1:9050
|
||||||
|
|
||||||
|
# anonymous-inbound: 匿名网络入站地址
|
||||||
|
# - 格式: address,port[,max_connections]
|
||||||
|
# - 允许通过 Tor/I2P 接收连接
|
||||||
|
# - 示例: anonymous-inbound=your_onion_address.onion:18083,127.0.0.1:18083,25
|
||||||
|
#anonymous-inbound=your_address.onion:18083,127.0.0.1:18083
|
||||||
|
|
||||||
|
# --- 性能优化 ---
|
||||||
|
# max-concurrency: 最大并发线程数
|
||||||
|
# - 默认: 0(自动检测 CPU 核心数)
|
||||||
|
# - 手动设置可限制 CPU 使用
|
||||||
|
#max-concurrency=0
|
||||||
|
|
||||||
|
# db-salvage: 尝试修复损坏的数据库
|
||||||
|
# - 1 = 启动时检查并修复
|
||||||
|
# - 0 = 不自动修复(默认)
|
||||||
|
# - 仅在数据库损坏时使用
|
||||||
|
#db-salvage=0
|
||||||
|
|
||||||
|
# --- 网络类型 ---
|
||||||
|
# testnet: 使用测试网络
|
||||||
|
# - 1 = 启用测试网(用于开发测试)
|
||||||
|
# - 0 = 使用主网(默认)
|
||||||
|
#testnet=0
|
||||||
|
|
||||||
|
# stagenet: 使用预发布网络
|
||||||
|
# - 1 = 启用预发布网(开发者测试环境)
|
||||||
|
# - 0 = 使用主网(默认)
|
||||||
|
#stagenet=0
|
||||||
4
debian/mond.service
vendored
4
debian/mond.service
vendored
@@ -8,8 +8,8 @@ Type=simple
|
|||||||
# 工作目录
|
# 工作目录
|
||||||
WorkingDirectory=/opt/mond
|
WorkingDirectory=/opt/mond
|
||||||
|
|
||||||
# 执行命令
|
# 执行命令 - 使用配置文件
|
||||||
ExecStart=/opt/mond/mond --data-dir=/var/lib/mond --log-file=/var/log/mond/mond.log --detach
|
ExecStart=/opt/mond/mond --config-file=/var/lib/mond/params.conf --non-interactive
|
||||||
|
|
||||||
# 重启策略
|
# 重启策略
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|||||||
136
debian/postinst
vendored
136
debian/postinst
vendored
@@ -18,9 +18,108 @@ chown mond:mond /var/log/mond
|
|||||||
chmod 750 /var/log/mond
|
chmod 750 /var/log/mond
|
||||||
|
|
||||||
# Create data directory
|
# Create data directory
|
||||||
mkdir -p /var/lib/mond
|
mkdir -p /var/lib/mond/data
|
||||||
chown mond:mond /var/lib/mond
|
chown -R mond:mond /var/lib/mond
|
||||||
chmod 750 /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 STORAGE
|
||||||
|
# ============================================================================
|
||||||
|
# data-dir: 区块链数据存储目录
|
||||||
|
data-dir=/var/lib/mond/data
|
||||||
|
|
||||||
|
# BLOCKCHAIN PRUNING
|
||||||
|
# ============================================================================
|
||||||
|
# prune-blockchain: 启用区块链修剪模式
|
||||||
|
prune-blockchain=1
|
||||||
|
|
||||||
|
# sync-pruned-blocks: 同步已修剪的区块(默认启用)
|
||||||
|
sync-pruned-blocks=1
|
||||||
|
|
||||||
|
# NETWORK PEER SETTINGS
|
||||||
|
# ============================================================================
|
||||||
|
# out-peers: 主动连接的对等节点数量(出站连接)
|
||||||
|
out-peers=32
|
||||||
|
|
||||||
|
# in-peers: 接受连接的对等节点数量(入站连接)
|
||||||
|
in-peers=64
|
||||||
|
|
||||||
|
# limit-rate-up: 上传速率限制(kB/s)
|
||||||
|
limit-rate-up=1048576
|
||||||
|
|
||||||
|
# limit-rate-down: 下载速率限制(kB/s)
|
||||||
|
limit-rate-down=1048576
|
||||||
|
|
||||||
|
# PRIORITY NODES
|
||||||
|
# ============================================================================
|
||||||
|
# add-priority-node: 优先连接的可信节点
|
||||||
|
add-priority-node=p2pmd.xmrvsbeast.com:18080
|
||||||
|
add-priority-node=nodes.hashvault.pro:18080
|
||||||
|
|
||||||
|
# SECURITY AND NETWORK INTEGRITY
|
||||||
|
# ============================================================================
|
||||||
|
# enforce-dns-checkpointing: 强制执行 DNS 检查点验证
|
||||||
|
enforce-dns-checkpointing=1
|
||||||
|
|
||||||
|
# enable-dns-blocklist: 启用 DNS 黑名单
|
||||||
|
enable-dns-blocklist=1
|
||||||
|
|
||||||
|
# ZMQ NOTIFICATION SYSTEM
|
||||||
|
# ============================================================================
|
||||||
|
# zmq-pub: ZeroMQ 发布接口,用于实时广播区块链事件
|
||||||
|
zmq-pub=tcp://127.0.0.1:18083
|
||||||
|
|
||||||
|
# P2P AND RPC NETWORK BINDING
|
||||||
|
# ============================================================================
|
||||||
|
# p2p-bind-ip: P2P 网络监听地址(默认启用,绑定所有网络接口)
|
||||||
|
p2p-bind-ip=0.0.0.0
|
||||||
|
|
||||||
|
# p2p-bind-port: P2P 网络监听端口
|
||||||
|
p2p-bind-port=18080
|
||||||
|
|
||||||
|
# rpc-bind-ip: RPC 接口监听地址
|
||||||
|
#rpc-bind-ip=0.0.0.0
|
||||||
|
|
||||||
|
# rpc-bind-port: RPC 接口监听端口
|
||||||
|
#rpc-bind-port=18081
|
||||||
|
|
||||||
|
# confirm-external-bind: 确认外部网络绑定
|
||||||
|
#confirm-external-bind=1
|
||||||
|
|
||||||
|
# RPC AUTHENTICATION
|
||||||
|
# ============================================================================
|
||||||
|
# rpc-login: RPC 访问认证凭据
|
||||||
|
#rpc-login=user:password
|
||||||
|
|
||||||
|
# RPC SSL/TLS ENCRYPTION
|
||||||
|
# ============================================================================
|
||||||
|
# rpc-ssl: 启用 RPC 连接的 SSL/TLS 加密(语义更清晰的启用方式)
|
||||||
|
#rpc-ssl=enabled
|
||||||
|
|
||||||
|
# rpc-ssl-certificate: SSL 证书文件路径
|
||||||
|
#rpc-ssl-certificate=/path/to/your/certificate.pem
|
||||||
|
|
||||||
|
# rpc-ssl-private-key: SSL 私钥文件路径
|
||||||
|
#rpc-ssl-private-key=/path/to/your/private_key.pem
|
||||||
|
|
||||||
|
# LOGGING SETTINGS
|
||||||
|
# ============================================================================
|
||||||
|
# log-level: 日志详细程度(调整为详细日志级别)
|
||||||
|
log-level=1
|
||||||
|
|
||||||
|
# log-file: 日志文件保存路径
|
||||||
|
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
|
# Set permissions on binary
|
||||||
chown root:mond /opt/mond/mond
|
chown root:mond /opt/mond/mond
|
||||||
@@ -39,22 +138,31 @@ fi
|
|||||||
echo ""
|
echo ""
|
||||||
echo "✅ Mond installed successfully!"
|
echo "✅ Mond installed successfully!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "📋 Service Information:"
|
echo "📋 Configuration and startup:"
|
||||||
echo ""
|
echo ""
|
||||||
echo " mond - Mond cryptocurrency network daemon"
|
echo "1. Review and configure settings (optional):"
|
||||||
|
echo " sudo nano /var/lib/mond/params.conf"
|
||||||
echo ""
|
echo ""
|
||||||
echo "To start the daemon:"
|
echo " Adjust network settings, peer connections, and other options as needed."
|
||||||
echo " sudo systemctl enable mond.service"
|
|
||||||
echo " sudo systemctl start mond.service"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Data directory:"
|
echo "2. Start Mond:"
|
||||||
echo " /var/lib/mond"
|
echo " sudo systemctl enable mond.service"
|
||||||
|
echo " sudo systemctl start mond.service"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Log directory:"
|
echo "3. Check status:"
|
||||||
echo " /var/log/mond"
|
echo " sudo systemctl status mond.service"
|
||||||
|
echo " sudo journalctl -u mond -f"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Binary location:"
|
echo "📁 Important paths:"
|
||||||
echo " /opt/mond/mond"
|
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 ""
|
echo ""
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
11
debian/postrm
vendored
11
debian/postrm
vendored
@@ -12,16 +12,9 @@ case "$1" in
|
|||||||
delgroup --quiet mond || true
|
delgroup --quiet mond || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove log directory
|
# Remove data directories (only on purge)
|
||||||
rm -rf /var/log/mond
|
rm -rf /var/log/mond
|
||||||
|
rm -rf /var/lib/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 ""
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
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. **构建制品:**
|
||||||
|
- 多架构 Debian 包(amd64, arm64)
|
||||||
|
- 二进制可执行文件
|
||||||
|
3. **发布到:**
|
||||||
|
- Gitea Release(附件形式)
|
||||||
|
- Generic Package Registry(通用软件包仓库)
|
||||||
|
- Debian Package Registry(stable 发行版)
|
||||||
|
|
||||||
|
## 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 提供健壮的服务管理
|
||||||
29
llmdoc/architecture/system-design.md
Normal file
29
llmdoc/architecture/system-design.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Mond 架构设计
|
||||||
|
|
||||||
|
## 1. 组件概览
|
||||||
|
|
||||||
|
- 主守护进程二进制文件
|
||||||
|
- 项目初始化和定制脚本
|
||||||
|
- 多架构构建配置
|
||||||
|
|
||||||
|
## 2. 核心文件类型
|
||||||
|
|
||||||
|
- 源代码文件
|
||||||
|
- 构建脚本
|
||||||
|
- Docker 构建配置
|
||||||
|
- CMake 配置文件
|
||||||
|
|
||||||
|
## 3. 构建流程
|
||||||
|
|
||||||
|
1. **源代码准备**:克隆 Monero 源代码
|
||||||
|
2. **定制应用**:替换 Monero 特定标识符
|
||||||
|
3. **依赖构建**:使用 Monero 的 depends 系统
|
||||||
|
4. **编译**:使用 CMake 和 Make 构建
|
||||||
|
5. **打包**:生成多架构二进制和 Debian 包
|
||||||
|
|
||||||
|
## 4. 关键设计决策
|
||||||
|
|
||||||
|
- 使用纯静态链接以提高可移植性
|
||||||
|
- 支持多架构(AMD64、ARM64)
|
||||||
|
- 保留原始 Monero 核心功能
|
||||||
|
- 简化安装和配置过程
|
||||||
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 版本兼容性
|
||||||
|
- 验证编译器支持情况
|
||||||
43
llmdoc/guides/how-to-install.md
Normal file
43
llmdoc/guides/how-to-install.md
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# Mond 安装指南
|
||||||
|
|
||||||
|
## 支持的平台
|
||||||
|
|
||||||
|
Mond 支持以下平台和安装方式:
|
||||||
|
- Debian stable
|
||||||
|
- Ubuntu 最新 LTS 版本
|
||||||
|
- 通用 Linux 二进制包(支持 AMD64 和 ARM64)
|
||||||
|
|
||||||
|
## 方式一:Debian/Ubuntu 安装(推荐)
|
||||||
|
|
||||||
|
```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 stable 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 流水线将自动上传到以下位置:
|
||||||
|
- **Generic Package Registry**:通用软件包仓库
|
||||||
|
- **Debian Package Registry**:stable 发行版
|
||||||
|
|
||||||
|
触发条件:新的版本标签推送
|
||||||
|
|
||||||
|
### 上传目标
|
||||||
|
所有 Debian 包统一上传到:
|
||||||
|
- 发行版:stable
|
||||||
|
- 组件:main
|
||||||
|
- 路径:`debian/pool/stable/main`
|
||||||
|
|
||||||
|
## 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` 参数指定,默认为控制台输出
|
||||||
21
llmdoc/index.md
Normal file
21
llmdoc/index.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Mond 文档
|
||||||
|
|
||||||
|
## 概览
|
||||||
|
|
||||||
|
[项目概述](/overview/project-overview.md)
|
||||||
|
|
||||||
|
## 指南
|
||||||
|
|
||||||
|
- [安装指南](/guides/installation.md)
|
||||||
|
|
||||||
|
## 架构
|
||||||
|
|
||||||
|
- [系统设计](/architecture/system-design.md)
|
||||||
|
|
||||||
|
## 参考资料
|
||||||
|
|
||||||
|
- [配置参考](/reference/configuration-reference.md)
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
本文档遵循 BSD-3-Clause 许可证,与 Mond 项目保持一致。
|
||||||
19
llmdoc/overview/project-overview.md
Normal file
19
llmdoc/overview/project-overview.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Mond: Monero Daemon 定制版
|
||||||
|
|
||||||
|
## 1. 身份
|
||||||
|
|
||||||
|
- **定义**:Monero 守护进程的定制开源实现
|
||||||
|
- **目的**:提供高度可移植、易于部署的 Monero 节点解决方案
|
||||||
|
|
||||||
|
## 2. 高级描述
|
||||||
|
|
||||||
|
Mond 是基于 Monero 项目的定制守护进程实现,专注于多架构支持、简化部署和增强可移植性。通过纯静态链接和多种安装方式,Mond 为不同 Linux 环境中运行 Monero 节点提供了灵活的选择。
|
||||||
|
|
||||||
|
## 3. 关键特性
|
||||||
|
|
||||||
|
- 多架构支持(AMD64、ARM64)
|
||||||
|
- 多发行版兼容(Ubuntu、Debian)
|
||||||
|
- 纯静态链接
|
||||||
|
- 灵活的安装和配置选项
|
||||||
|
- 隐私保护
|
||||||
|
- 自动更新支持
|
||||||
24
llmdoc/reference/configuration-reference.md
Normal file
24
llmdoc/reference/configuration-reference.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Mond 参考信息
|
||||||
|
|
||||||
|
## 核心摘要
|
||||||
|
|
||||||
|
Mond 是 Monero 守护进程的定制开源实现,提供高度可配置和可移植的 Monero 节点解决方案。
|
||||||
|
|
||||||
|
## 关键信息源
|
||||||
|
|
||||||
|
- **源代码库**:https://github.com/monero-project/monero
|
||||||
|
- **官方网站**:未定义(本项目为定制版)
|
||||||
|
- **授权协议**:BSD-3-Clause
|
||||||
|
|
||||||
|
## 配置选项参考
|
||||||
|
|
||||||
|
### 常用命令行参数
|
||||||
|
|
||||||
|
- `--data-dir <path>`:指定数据目录
|
||||||
|
- `--log-file <path>`:指定日志文件路径
|
||||||
|
- `--log-level <level>`:日志级别(0-4)
|
||||||
|
- `--detach`:后台运行
|
||||||
|
- `--rpc-bind-ip <ip>`:RPC 绑定 IP
|
||||||
|
- `--rpc-bind-port <port>`:RPC 绑定端口
|
||||||
|
- `--p2p-bind-ip <ip>`:P2P 绑定 IP
|
||||||
|
- `--p2p-bind-port <port>`:P2P 绑定端口
|
||||||
206
llmdoc/reference/configuration.md
Normal file
206
llmdoc/reference/configuration.md
Normal file
@@ -0,0 +1,206 @@
|
|||||||
|
# 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 STORAGE
|
||||||
|
# ============================================================================
|
||||||
|
# data-dir: 区块链数据存储目录
|
||||||
|
data-dir=/var/lib/mond/data
|
||||||
|
|
||||||
|
# BLOCKCHAIN PRUNING
|
||||||
|
# ============================================================================
|
||||||
|
# prune-blockchain: 启用区块链修剪模式
|
||||||
|
prune-blockchain=1
|
||||||
|
|
||||||
|
# sync-pruned-blocks: 同步已修剪的区块(默认启用)
|
||||||
|
sync-pruned-blocks=1
|
||||||
|
|
||||||
|
# NETWORK PEER SETTINGS
|
||||||
|
# ============================================================================
|
||||||
|
# out-peers: 主动连接的对等节点数量(出站连接)
|
||||||
|
out-peers=32
|
||||||
|
|
||||||
|
# in-peers: 接受连接的对等节点数量(入站连接)
|
||||||
|
in-peers=64
|
||||||
|
|
||||||
|
# limit-rate-up: 上传速率限制(kB/s)
|
||||||
|
limit-rate-up=1048576
|
||||||
|
|
||||||
|
# limit-rate-down: 下载速率限制(kB/s)
|
||||||
|
limit-rate-down=1048576
|
||||||
|
|
||||||
|
# PRIORITY NODES
|
||||||
|
# ============================================================================
|
||||||
|
# add-priority-node: 优先连接的可信节点
|
||||||
|
add-priority-node=p2pmd.xmrvsbeast.com:18080
|
||||||
|
add-priority-node=nodes.hashvault.pro:18080
|
||||||
|
|
||||||
|
# SECURITY AND NETWORK INTEGRITY
|
||||||
|
# ============================================================================
|
||||||
|
# enforce-dns-checkpointing: 强制执行 DNS 检查点验证
|
||||||
|
enforce-dns-checkpointing=1
|
||||||
|
|
||||||
|
# enable-dns-blocklist: 启用 DNS 黑名单
|
||||||
|
enable-dns-blocklist=1
|
||||||
|
|
||||||
|
# ZMQ NOTIFICATION SYSTEM
|
||||||
|
# ============================================================================
|
||||||
|
# zmq-pub: ZeroMQ 发布接口,用于实时广播区块链事件
|
||||||
|
zmq-pub=tcp://127.0.0.1:18083
|
||||||
|
|
||||||
|
# P2P AND RPC NETWORK BINDING
|
||||||
|
# ============================================================================
|
||||||
|
# p2p-bind-ip: P2P 网络监听地址(默认启用,绑定所有网络接口)
|
||||||
|
p2p-bind-ip=0.0.0.0
|
||||||
|
|
||||||
|
# p2p-bind-port: P2P 网络监听端口
|
||||||
|
p2p-bind-port=18080
|
||||||
|
|
||||||
|
# rpc-bind-ip: RPC 接口监听地址
|
||||||
|
#rpc-bind-ip=0.0.0.0
|
||||||
|
|
||||||
|
# rpc-bind-port: RPC 接口监听端口
|
||||||
|
#rpc-bind-port=18081
|
||||||
|
|
||||||
|
# confirm-external-bind: 确认外部网络绑定
|
||||||
|
#confirm-external-bind=1
|
||||||
|
|
||||||
|
# RPC AUTHENTICATION
|
||||||
|
# ============================================================================
|
||||||
|
# rpc-login: RPC 访问认证凭据
|
||||||
|
#rpc-login=user:password
|
||||||
|
|
||||||
|
# RPC SSL/TLS ENCRYPTION
|
||||||
|
# ============================================================================
|
||||||
|
# rpc-ssl: 启用 RPC 连接的 SSL/TLS 加密(语义更清晰的启用方式)
|
||||||
|
rpc-ssl=enabled
|
||||||
|
|
||||||
|
# rpc-ssl-certificate: SSL 证书文件路径
|
||||||
|
#rpc-ssl-certificate=/path/to/your/certificate.pem
|
||||||
|
|
||||||
|
# rpc-ssl-private-key: SSL 私钥文件路径
|
||||||
|
#rpc-ssl-private-key=/path/to/your/private_key.pem
|
||||||
|
|
||||||
|
# LOGGING SETTINGS
|
||||||
|
# ============================================================================
|
||||||
|
# log-level: 日志详细程度(调整为详细日志级别)
|
||||||
|
log-level=1
|
||||||
|
|
||||||
|
# log-file: 日志文件保存路径
|
||||||
|
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