Skip to content

Latest commit

 

History

History
797 lines (597 loc) · 25.3 KB

File metadata and controls

797 lines (597 loc) · 25.3 KB

区块链节点 QPS 性能基准测试框架

English | 中文

License: AGPL v3 Commercial License Python 3.8+ Shell Script

一个专业的多区块链节点性能基准测试框架,具备全面的 QPS 测试、实时监控、智能瓶颈检测和高级可视化报告功能。

🎯 核心特性

  • 多模式 QPS 测试:快速(15+分钟)、标准(90+分钟)和密集(8+小时)测试模式
  • 跨平台兼容性:支持 8 个主流区块链节点(Solana、Ethereum、BSC、Base、Polygon、Scroll、Starknet、Sui)在 AWS、其他云、IDC 或本地 Linux 环境运行
  • 真实交易数据测试:从区块链节点获取活跃账户地址,使用 single 或 mixed RPC 方法生成测试目标
  • 多层次性能监控:专业监控系统,4 个专业化数据流
    • 统一指标(79 个字段):CPU、内存、EBS、网络、ENA、区块高度、QPS
    • 监控开销跟踪(20 个字段):自我监控和影响分析
    • ENA 深度监控(15 个字段):AWS 专属网络性能分析
    • 区块链健康跟踪(7 个字段):节点同步状态和数据丢失检测
  • 双重瓶颈监测机制
    • 即时监测:8 维度监控,5 种场景判断逻辑避免误判
      • 资源瓶颈 + 节点健康 → 误报(重置计数器)
      • RPC 性能违规(成功率 < 95% 或 延迟 > 1000ms)→ 真实瓶颈(必要条件)
      • 任意瓶颈 + 节点不健康 → 真实瓶颈(连续 3 次)
      • 仅节点持续不健康 → 节点故障(立即停止)
      • 全部正常 → 继续测试
    • 离线分析:测试完成后的多维度深度分析
      • 时间窗口分析(瓶颈前后 ±30 秒)聚焦根因调查
      • 性能悬崖分析识别 QPS 降级模式
      • EBS 性能深度剖析与 AWS 基线对比
      • CPU-EBS 关联分析识别资源瓶颈
      • RPC 方法性能剖析和优化建议
  • AWS 深度集成:EBS 性能基线、ENA 网络监控
  • 专业可视化32 张专业图表全面的 HTML 报告

⚡ 快速配置

在运行框架之前,您必须配置以下参数:

必需配置(在 config/config_loader.sh 中)

# 1. RPC 端点(必需)
LOCAL_RPC_URL="http://localhost:8899"  # 您的区块链节点 RPC 端点

# 2. 区块链类型(必需)
BLOCKCHAIN_NODE="Solana"  # 支持:Solana、Ethereum、BSC、Base、Polygon、Scroll、Starknet、Sui

# 3. 区块链进程名称(监控必需)
BLOCKCHAIN_PROCESS_NAMES=(
    "agave-validator"    # 您实际的区块链节点进程名称
    "solana-validator"   # 添加所有可能的进程名称
    "validator"
)
# 使用以下命令检查您的进程名称:ps aux | grep -i validator

EBS 配置(在 config/user_config.sh 中)

# 4. DATA 设备配置(必需)
LEDGER_DEVICE="nvme1n1"              # DATA 设备名称(使用 'lsblk' 检查)
DATA_VOL_TYPE="io2"                  # 选项:"gp3" | "io2" | "instance-store"
DATA_VOL_MAX_IOPS="30000"            # 您的 EBS 卷预配置的 IOPS
DATA_VOL_MAX_THROUGHPUT="700"        # 您的 EBS 卷吞吐量(MiB/s)

# 5. ACCOUNTS 设备(可选,但建议配置以进行完整监控)
ACCOUNTS_DEVICE="nvme2n1"            # ACCOUNTS 设备名称
ACCOUNTS_VOL_TYPE="io2"              # 选项:"gp3" | "io2" | "instance-store"
ACCOUNTS_VOL_MAX_IOPS="30000"        # ACCOUNTS 卷的 IOPS
ACCOUNTS_VOL_MAX_THROUGHPUT="700"    # ACCOUNTS 卷的吞吐量(MiB/s)

# 6. 网络配置(AWS 环境必需)
NETWORK_MAX_BANDWIDTH_GBPS=25        # 您的实例网络带宽(Gbps)

快速配置检查:

# 验证您的区块链进程名称
ps aux | grep -i validator
ps aux | grep -i agave

# 验证您的 EBS 设备
lsblk

# 在 AWS 控制台检查您的 EBS 卷配置:
# EC2 → 卷 → 选择您的卷 → 详细信息选项卡
# - IOPS:预配置的 IOPS 值
# - 吞吐量:预配置的吞吐量值

# 检查您的实例网络带宽:
# EC2 → 实例类型 → 搜索您的实例类型 → 网络

配置文件位置:

  • config/config_loader.sh - RPC 端点、区块链类型、进程名称
  • config/user_config.sh - EBS 设备、网络带宽、监控间隔

注意:如果您没有正确配置这些参数,框架将使用默认值,这可能与您的实际硬件不匹配,导致性能分析不准确。

🚀 快速开始

前置条件

最快的方式是使用项目自带的依赖安装脚本:

# 交互式安装(每个需要 sudo 的步骤会先询问)
bash scripts/install_deps.sh

# 非交互式(CI / Docker / 无人值守 VM)
bash scripts/install_deps.sh --yes

# 仅检查模式 — 只列出缺什么,不做任何修改
bash scripts/install_deps.sh --check

# 查看所有参数
bash scripts/install_deps.sh --help

安装器涵盖:

  • 系统包sysstat bc jq net-tools procps)— 自动检测 apt/yum/dnf/apk
  • Python 包(来自 requirements.txt)— 自动处理 PEP 668(Debian 12+)
  • vegeta v12.12.0 — 锁定版本,SHA256 校验,安装到 ~/bin/vegeta

支持的发行版:Ubuntu、Debian、RHEL、CentOS、Rocky、AlmaLinux、Amazon Linux、Fedora、Alpine。

手动安装(如果您希望逐步控制)
# 安装 Vegeta v12.12.0(QPS 测试工具)
wget https://github.com/tsenart/vegeta/releases/download/v12.12.0/vegeta_12.12.0_linux_amd64.tar.gz
tar -xzf vegeta_12.12.0_linux_amd64.tar.gz
sudo mv vegeta /usr/local/bin/
vegeta -version  # 验证安装

# 安装系统监控工具(框架硬依赖 — 全部必需)
sudo apt-get install -y sysstat bc jq net-tools procps
# sysstat → iostat/mpstat/sar  |  bc → shell 脚本中的算术运算
# jq → JSON 解析  |  net-tools → netstat  |  procps → ps/top

# 安装 Python 和虚拟环境支持
sudo apt-get install python3 python3-venv

# 创建虚拟环境
python3 -m venv node-env

# 激活虚拟环境
source node-env/bin/activate

# 检查 Python 版本(需要 Python 3.8+)
python3 --version

# 安装 Python 依赖(从项目根目录执行)
pip3 install -r requirements.txt
# 注意:在 Debian 12+(PEP 668)上,如果您跳过了上面的 venv,请使用:
#   pip3 install --user --break-system-packages -r requirements.txt

# 验证所有工具已安装
which vegeta    # QPS 测试工具
which iostat    # I/O 监控工具
which mpstat    # CPU 监控工具
which sar       # 网络监控工具

基本使用

# 快速测试(15+ 分钟)- 可以直接运行
./blockchain_node_benchmark.sh --quick

# 标准测试(90+ 分钟)- 建议使用 screen
screen -S benchmark_$(date +%m%d_%H%M)
./blockchain_node_benchmark.sh --standard
# ⚠️ 关闭 SSH 前必须按 Ctrl+a 然后 d 分离会话!

# 密集测试(最多 8 小时)- 必须使用 screen/tmux
screen -S benchmark_$(date +%m%d_%H%M)
./blockchain_node_benchmark.sh --intensive
# ⚠️ 关闭 SSH 前必须按 Ctrl+a 然后 d 分离会话!

⚠️ 关键提示:对于超过 30 分钟的测试,你必须

  1. 使用 screentmux
  2. 分离会话(screen 按 Ctrl+a, 然后 d)后再关闭 SSH
  3. 否则 SSH 断开时测试会停止!

详见下方长时间测试最佳实践

自定义测试

# 自定义密集测试,指定参数
./blockchain_node_benchmark.sh --intensive \
    --initial-qps 1000 \
    --max-qps 10000 \
    --step-qps 500 \
    --duration 300 \
    --mixed  # 使用混合 RPC 方法测试

📦 系统架构

blockchain-node-benchmark/
├── 🎯 核心执行层
│   ├── blockchain_node_benchmark.sh    # 主入口脚本
│   ├── master_qps_executor.sh          # QPS 测试引擎
│   └── common_functions.sh             # 共享函数库
├── ⚙️ 配置管理
│   ├── config_loader.sh                # 配置加载器
│   └── system_config.sh                # 系统配置
├── 📊 监控数据层
│   ├── unified_monitor.sh              # 统一监控器
│   ├── bottleneck_detector.sh          # 瓶颈检测器
│   └── monitoring_coordinator.sh       # 监控协调器
├── 🔬 分析处理层
│   ├── comprehensive_analysis.py       # 综合分析器
│   ├── qps_analyzer.py                 # QPS 分析器
│   └── rpc_deep_analyzer.py            # RPC 深度分析器
├── 📈 可视化层
│   ├── report_generator.py             # HTML 报告生成器
│   ├── performance_visualizer.py       # 性能可视化引擎
│   └── advanced_chart_generator.py     # 高级图表生成器
└── 🛠️ 工具与实用程序
    ├── benchmark_archiver.sh           # 测试结果归档器
    ├── ebs_bottleneck_detector.sh      # EBS 瓶颈检测器
    └── target_generator.sh             # 测试目标生成器

📚 文档

docs/ 目录中提供了全面的文档:

核心文档

  • 4 层模块化架构设计
  • 组件交互和数据流
  • 32 张专业图表详解
  • 系统集成点
  • 完整的数据文件结构和字段定义
  • 79 字段性能数据 CSV 格式
  • 20 字段监控开销 CSV 格式
  • 数据流架构和文件命名约定
  • 测试结果的 JSON 格式规范
  • 4 层配置系统(用户/系统/内部/动态)
  • EBS 卷配置(gp3/io2/instance-store)
  • 网络和 ENA 设置
  • 区块链特定参数
  • 双层监控架构
  • 79 项性能指标收集(已更新)
  • 自我监控和开销分析
  • AWS 标准转换公式
  • 单一 vs 混合 RPC 测试模式
  • 多区块链支持(Solana/Ethereum/BSC/Base/Polygon/Scroll/Starknet/Sui)
  • RPC 方法配置
  • 真实交易数据测试

⚙️ 配置

基本配置

RPC 和区块链设置config/config_loader.sh):

LOCAL_RPC_URL="http://localhost:8899"
BLOCKCHAIN_NODE="Solana"
BLOCKCHAIN_PROCESS_NAMES=(
    "agave-validator"
    "solana-validator"
    "validator"
)

EBS 设备配置config/user_config.sh):

# DATA 设备(必需)
LEDGER_DEVICE="nvme1n1"
DATA_VOL_TYPE="io2"                  # io2/gp3/instance-store
DATA_VOL_MAX_IOPS="30000"
DATA_VOL_MAX_THROUGHPUT="700"        # MiB/s

# ACCOUNTS 设备(可选)
ACCOUNTS_DEVICE="nvme2n1"
ACCOUNTS_VOL_TYPE="io2"              # io2/gp3/instance-store
ACCOUNTS_VOL_MAX_IOPS="30000"
ACCOUNTS_VOL_MAX_THROUGHPUT="700"    # MiB/s

# 网络配置
NETWORK_MAX_BANDWIDTH_GBPS=25        # Gbps

注意: ACCOUNTS 设备是可选的。如果未配置,框架将仅监控 DATA 设备。

高级配置

瓶颈检测阈值config/internal_config.sh):

BOTTLENECK_CPU_THRESHOLD=85
BOTTLENECK_MEMORY_THRESHOLD=90
BOTTLENECK_EBS_UTIL_THRESHOLD=90
BOTTLENECK_EBS_LATENCY_THRESHOLD=50
NETWORK_UTILIZATION_THRESHOLD=80

监控间隔config/user_config.sh):

MONITOR_INTERVAL=5              # 默认监控间隔(秒)
HIGH_FREQ_INTERVAL=1            # 高频监控间隔
ULTRA_HIGH_FREQ_INTERVAL=0.5    # 超高频监控间隔

📊 测试模式

模式 持续时间 QPS 范围 步长 使用场景
快速 15+ 分钟 1000-3000 500 QPS 基本性能验证
标准 90+ 分钟 20000-50000 500 QPS 全面性能评估
密集 最多 8 小时 50000-无限制 250 QPS 智能瓶颈检测

🔍 监控指标

系统指标(共 73-79 项)

  • 时间戳:统一时间戳(1 个字段)
  • CPU:使用率、I/O 等待、系统调用(6 个字段)
  • 内存:使用率、可用内存、缓存(3 个字段)
  • EBS 存储:IOPS、吞吐量、延迟、利用率(每设备 21 个字段,2 个设备共 42 个字段)
  • 网络:带宽利用率、PPS、连接数(10 个字段)
  • ENA 网络:配额超限、带宽限制(6 个字段,仅 AWS)
  • 监控开销:系统影响指标(2 个字段)
  • 区块高度:本地 vs 主网同步状态(6 个字段)
  • QPS 性能:当前 QPS、延迟、可用性(3 个字段)

总计:79 个字段(AWS 环境含 ENA)或 73 个字段(非 AWS 环境不含 ENA)

详细监控数据文件

框架生成多个专业化 CSV 文件用于细粒度分析:

1. 性能指标 (performance_YYYYMMDD_HHMMSS.csv - 79 个字段)

  • 统一的性能数据,整合所有系统指标
  • 可配置间隔的实时采集(默认 5 秒)
  • 用于综合性能分析和关联研究

2. 监控开销 (monitoring_overhead_YYYYMMDD_HHMMSS.csv - 20 个字段)

  • 监控系统资源消耗(CPU、内存、进程数)
  • 区块链节点资源消耗
  • 系统级资源统计(核心数、内存、磁盘、缓存、缓冲区)
  • 用于监控影响分析和开销优化

3. ENA 网络详情 (ena_network_YYYYMMDD_HHMMSS.csv - 15 个字段,仅 AWS)

  • 网络接口统计(rx/tx 字节数、数据包数)
  • ENA 配额跟踪(带宽入/出、PPS、连接跟踪、本地链路)
  • 网络限制状态(network_limited、pps_limited、bandwidth_limited)
  • 用于 AWS ENA 特定瓶颈检测和网络性能分析

4. 区块高度监控 (block_height_monitor_YYYYMMDD_HHMMSS.csv - 7 个字段)

  • 本地和主网区块高度跟踪
  • 区块高度差异和同步状态
  • 节点健康指标(local_health、mainnet_health)
  • 数据丢失检测标志
  • 用于区块链节点同步分析和健康监控

瓶颈检测(8 个维度)

  1. CPU 瓶颈:阈值 85%
  2. 内存瓶颈:阈值 90%
  3. EBS 瓶颈:IOPS/吞吐量/利用率 > 90% 基线
  4. 网络瓶颈:带宽/PPS 利用率 > 80%
  5. ENA 瓶颈:配额限制超限
  6. RPC 成功率:< 95%(必要条件)
  7. RPC 延迟:P99 > 1000ms(必要条件)
  8. RPC 错误率:> 5%

📈 生成的报告

示例报告

查看基于真实测试数据生成的完整示例报告(标准模式,90+ 分钟):

32 张专业图表(完整框架覆盖)

高级分析图表(9 张)

  1. pearson_correlation_analysis.png - Pearson 相关性分析
  2. linear_regression_analysis.png - 线性回归分析
  3. negative_correlation_analysis.png - 负相关性分析
  4. ena_limitation_trends.png - ENA 限制趋势
  5. ena_connection_capacity.png - ENA 连接容量
  6. ena_comprehensive_status.png - ENA 综合状态
  7. comprehensive_correlation_matrix.png - 综合相关性矩阵
  8. performance_trend_analysis.png - 性能趋势分析
  9. performance_correlation_heatmap.png - 性能相关性热图

EBS 专业图表(7 张)

  1. ebs_aws_capacity_planning.png - AWS 容量规划分析
  2. ebs_iostat_performance.png - Iostat 性能分析
  3. ebs_bottleneck_correlation.png - 瓶颈相关性分析
  4. ebs_performance_overview.png - EBS 性能概览
  5. ebs_bottleneck_analysis.png - EBS 瓶颈分析
  6. ebs_aws_standard_comparison.png - EBS AWS 标准对比
  7. ebs_time_series_analysis.png - EBS 时间序列分析

核心性能图表(11 张)

  1. performance_overview.png - 性能概览
  2. cpu_ebs_correlation_visualization.png - CPU-EBS 相关性分析
  3. device_performance_comparison.png - 设备性能对比
  4. await_threshold_analysis.png - I/O 延迟阈值分析
  5. monitoring_overhead_analysis.png - 监控开销分析
  6. qps_trend_analysis.png - QPS 趋势分析
  7. resource_efficiency_analysis.png - 资源效率分析
  8. bottleneck_identification.png - 瓶颈识别
  9. block_height_sync_chart.png - 区块高度同步图表
  10. smoothed_trend_analysis.png - 平滑趋势分析
  11. util_threshold_analysis.png - 利用率阈值分析

附加分析图表(5 张)

  1. resource_distribution_chart.png - 资源分布图表
  2. monitoring_impact_chart.png - 监控影响分析
  3. comprehensive_analysis_charts.png - 综合分析图表
  4. performance_cliff_analysis.png - 性能悬崖分析
  5. qps_performance_analysis.png - QPS 性能分析

HTML 报告章节

  • 系统级瓶颈分析:瓶颈检测结果和优化建议
  • 性能摘要:测试概览和关键性能指标
  • 配置状态检查:系统配置验证
  • 区块链节点同步分析:区块高度监控和同步状态
  • EBS 性能分析结果:存储性能深度分析与 AWS 基线对比
  • 性能图表库:所有 32 张专业可视化图表按类别组织
  • 监控开销分析:监控系统影响的综合分析
  • CPU-EBS 关联分析:资源关联和瓶颈识别

📋 使用示例

示例 1:标准性能测试

# 运行标准测试
./blockchain_node_benchmark.sh --standard

# 查看结果
ls reports/
# comprehensive_analysis_report.html
# performance_overview.png
# cpu_ebs_correlation_visualization.png
# ...(其他图表文件)

示例 2:自定义密集测试

# 自定义密集测试,指定参数
./blockchain_node_benchmark.sh --intensive \
    --initial-qps 2000 \
    --max-qps 15000 \
    --step-qps 1000 \
    --mixed  # 使用混合 RPC 方法测试

示例 3:检查系统状态

# 检查 QPS 测试引擎状态
./core/master_qps_executor.sh --status

# 检查监控系统状态
./monitoring/monitoring_coordinator.sh status

# 查看测试历史
./tools/benchmark_archiver.sh --list

🚨 故障排除

常见问题

1. Vegeta 未安装

# 推荐:安装特定版本 v12.12.0
wget https://github.com/tsenart/vegeta/releases/download/v12.12.0/vegeta_12.12.0_linux_amd64.tar.gz
tar -xzf vegeta_12.12.0_linux_amd64.tar.gz
sudo mv vegeta /usr/local/bin/
vegeta -version  # 应显示:Version: 12.12.0

# 备选:通过包管理器安装(可能是旧版本)
# Ubuntu/Debian
sudo apt-get install vegeta

2. 网络接口检测问题

# 检查检测到的网络接口
echo $NETWORK_INTERFACE

# 列出所有网络接口
ip link show

# 如果自动检测失败,手动指定网络接口
export NETWORK_INTERFACE="eth0"    # 替换为您的接口名称
# 或添加到 config/user_config.sh:
# NETWORK_INTERFACE="eth0"

# 常见接口名称:
# - AWS:eth0、eth1
# - 其他云:eth0、ens3、ens5
# - 本地:eth0、enp0s3、wlan0

3. 缺少系统监控工具

# 安装 sysstat 包
sudo apt-get install sysstat  # Ubuntu/Debian
sudo yum install sysstat      # CentOS/RHEL

4. Python 依赖问题

# 重新安装依赖
pip3 install --upgrade -r requirements.txt

# 检查特定包
python3 -c "import matplotlib, pandas, numpy; print('All packages OK')"

5. 权限问题

# 授予执行权限
chmod +x blockchain_node_benchmark.sh
chmod +x core/master_qps_executor.sh
chmod +x monitoring/monitoring_coordinator.sh

日志文件位置

所有日志存储在 blockchain-node-benchmark-result/current/logs/ 目录下:

  • QPS测试日志master_qps_executor.log - QPS测试进度和结果
  • 监控日志unified_monitor.log - 系统监控数据
  • 瓶颈检测bottleneck_detector.log - 瓶颈检测事件
  • EBS分析ebs_bottleneck_detector.log - EBS性能分析
  • 性能数据performance_YYYYMMDD_HHMMSS.csv - 原始性能指标(79 个字段)
  • 监控开销monitoring_overhead_YYYYMMDD_HHMMSS.csv - 监控系统开销(20 个字段)
  • ENA 网络ena_network_YYYYMMDD_HHMMSS.csv - ENA 网络详细指标(15 个字段,仅 AWS)
  • 区块高度监控block_height_monitor_YYYYMMDD_HHMMSS.csv - 区块高度同步跟踪(7 个字段)

查看测试进度

如果终端在测试期间断开连接,可以重新连接并查看进度:

# 实时查看QPS测试进度
tail -f blockchain-node-benchmark-result/current/logs/master_qps_executor.log

# 检查当前测试状态
ps aux | grep vegeta | grep -v grep

# 查看最新性能数据
tail -20 blockchain-node-benchmark-result/current/logs/performance_latest.csv

# 检查是否检测到瓶颈
cat /dev/shm/blockchain-node-benchmark/bottleneck_status.json | jq '.'

# 查看已完成的测试结果
ls -lt blockchain-node-benchmark-result/current/vegeta_results/ | head -10

测试完成后

测试完成后,所有结果都会被归档:

# 查看归档结果
ls -lt blockchain-node-benchmark-result/archives/

# 访问特定测试运行
cd blockchain-node-benchmark-result/archives/run_XXX_YYYYMMDD_HHMMSS/

# 查看日志
cat logs/master_qps_executor.log

# 查看报告
open reports/performance_report_zh_*.html

长时间测试最佳实践

⚠️ 关键提示:为防止 SSH 断开导致测试中断,你必须使用以下方法之一:

方法 1:使用 screen(推荐)

# 步骤 1:创建带唯一名称的 screen 会话
screen -S benchmark_$(date +%m%d_%H%M)
# 示例:benchmark_1030_2200

# 步骤 2:启动测试
./blockchain_node_benchmark.sh --intensive

# 步骤 3:⚠️ 重要 - 关闭 SSH 前必须分离会话
# 按键:Ctrl+a,然后按 d
# 你会看到:[detached from xxx.benchmark_1030_2200]

# 步骤 4:现在可以安全关闭 SSH
exit

# 步骤 5:随时重新连接
# 列出所有 screen 会话
screen -ls

# 重新连接到特定会话
# 如果显示 "(Detached)" - 使用简单重连:
screen -r benchmark_1030_2200
# 或使用 PID:
screen -r 12345

# 如果显示 "(Attached)" - 使用强制重连:
screen -d -r 12345
# 这会断开现有连接并重新连接你

常见问题:

# 问题:多个同名会话
screen -ls
# 显示:13813.benchmark, 19327.benchmark, 54872.benchmark

# 解决方案 1:使用 PID 连接到最新的会话
screen -r 13813

# 解决方案 2:清理旧会话
screen -X -S 19327 quit
screen -X -S 54872 quit

# 解决方案 3:杀掉所有会话重新开始
killall screen

为什么分离很关键:如果不分离就关闭 SSH,测试会停止!

方法 2:使用 tmux

# 步骤 1:创建 tmux 会话
tmux new -s benchmark

# 步骤 2:启动测试
./blockchain_node_benchmark.sh --intensive

# 步骤 3:⚠️ 重要 - 关闭 SSH 前必须分离会话
# 按键:Ctrl+b,然后按 d

# 步骤 4:随时重新连接
tmux attach -t benchmark

方法 3:使用 nohup

nohup ./blockchain_node_benchmark.sh --intensive > test.log 2>&1 &
# 查看进度:tail -f test.log

🔧 高级功能

测试结果归档

# 列出历史测试
./tools/benchmark_archiver.sh --list

# 比较测试结果
./tools/benchmark_archiver.sh --compare run_001 run_002

# 清理旧测试
./tools/benchmark_archiver.sh --cleanup --days 30

自定义分析

# 使用 Python 分析组件
from analysis.comprehensive_analysis import ComprehensiveAnalyzer

analyzer = ComprehensiveAnalyzer("reports")
analyzer.run_comprehensive_analysis("logs/performance_latest.csv")

批量测试

# 运行多个测试模式
for mode in quick standard intensive; do
    echo "Running $mode test..."
    ./blockchain_node_benchmark.sh --$mode
    sleep 60  # 等待系统恢复
done

🤝 贡献

我们欢迎贡献!贡献本项目即表示您同意以下条款:

贡献者许可协议(CLA)

提交 Pull Request 即表示您同意:

  • 您的贡献将同时在 AGPL 3.0 和商业许可证下授权
  • 您授予项目维护者在商业版本中使用您贡献的权利
  • 您有权提交这些贡献(无第三方知识产权冲突)

开发环境设置

# 克隆仓库
git clone <repository-url>
cd blockchain-node-benchmark

# 安装开发依赖
pip3 install -r requirements.txt

# 验证安装
python3 --version
bash --version

贡献指南

  1. Fork 和分支:从 main 创建功能分支
  2. 代码风格:Python 遵循 PEP 8,bash 脚本使用 shellcheck
  3. 文档:更新相关文档
  4. 提交信息:使用清晰、描述性的提交信息
  5. Pull Request:提交 PR 并附上详细说明

添加新的监控指标

  1. monitoring/unified_monitor.sh 中添加数据收集逻辑
  2. 更新 generate_csv_header() 函数以添加新字段
  3. 在 Python 分析脚本中添加相应的分析逻辑
  4. 更新可视化组件以生成相关图表

有疑问?

对于任何贡献相关的问题,请提交带有 question 标签的 Issue。

📄 许可证

本项目采用双许可证模式:

开源许可证(AGPL 3.0)

  • 个人、学术和开源项目免费使用
  • 修改后必须开源
  • 网络使用需要公开源码
  • 详见 LICENSE 文件

商业许可证

  • 商业/专有用途需要购买
  • 允许闭源集成
  • 无 AGPL 义务
  • 提供企业支持
  • 详见 LICENSE.COMMERCIAL 文件

联系方式: 在 GitHub 提交 Issue 并添加 commercial-license 标签咨询商业许可