本文档描述了 OpenZeppelin Monitor 代码库的项目结构和组织方式,包括源代码布局、配置文件和开发资源。内容涵盖了项目布局、源代码组织、配置和数据、示例和资源、指标和监控、测试和文档、开发工具以及 Docker 支持等多个方面,为开发者提供了全面的项目概览。
本文档描述了 OpenZeppelin Monitor 代码库的项目结构和组织,包括源代码布局、配置文件和开发资源。
该项目遵循标准的 Rust 项目布局,并为配置、文档和操作资源添加了额外的目录:
openzeppelin-monitor/
├── src/ # 源代码
│ ├── bootstrap/ # 应用程序的引导函数
│ ├── models/ # 数据结构和类型
│ ├── repositories/ # 配置存储
│ ├── services/ # 核心业务逻辑
│ ├── utils/ # 辅助函数
│
├── config/ # 配置文件
├── tests/ # 集成测试和基于属性的测试
├── data/ # 运行时数据存储
├── docs/ # 文档
├── scripts/ # 实用工具脚本
├── cmd/ # 指标和监控
├── examples/ # 示例配置文件
└── ... 其他根文件 (Cargo.toml, README.md, 等)
src/ 目录主源代码目录包含核心实现文件,这些文件被组织成几个模块:
bootstrap/main.rs 的应用程序初始化和设置:
处理服务初始化和依赖注入
管理启动顺序和服务生命周期
models/核心数据结构和类型:
blockchain/: 平台特定的实现
evm/: 以太坊虚拟机特定类型
stellar/: Stellar 区块链特定类型
config/: 配置加载和验证
core/: 核心领域模型
security/: 安全和密钥管理
repositories/配置存储:
处理加载和验证配置文件
为 monitors、networks 和 triggers 提供存储接口
实现配置引用的验证
services/核心业务逻辑:
blockchain/: 区块链客户端接口
transports/: 传输客户端
evm/: 以太坊虚拟机传输客户端
stellar/: Stellar 传输客户端
clients/: 客户端实现
evm/: 以太坊虚拟机客户端
stellar/: Stellar 客户端
blockwatcher/: 区块监控和处理
filter/: 事务和事件过滤
filters/: 过滤器实现
evm/: 以太坊虚拟机过滤器
stellar/: Stellar 过滤器
notification/: 警报处理
trigger/: Trigger 评估和执行
script/: 脚本执行实用程序
utils/辅助函数:
cron_utils: Cron 调度实用程序
expression: 表达式评估
logging/: 日志实用程序
macros/: 公共功能的宏
metrics/: 指标实用程序
monitor/: Monitor 配置测试实用程序
tests/: 包含测试实用程序和辅助函数
builders/: 测试构建器模式,实现用于创建测试装置的 fluent 接口
evm/: 特定于以太坊虚拟机 (EVM) 测试的构建器实现
stellar/: 特定于 Stellar 区块链测试的构建器实现
config/ 目录包含 JSON 配置文件,用于:
网络配置 ( networks/)
区块链网络的连接详细信息
RPC 端点和网络参数
Monitor 配置 ( monitors/)
监控规则和条件
网络和 trigger 引用
Trigger 配置 ( triggers/)
通知设置
脚本定义
Filter 配置 ( filters/)
匹配过滤器脚本
examples/config/ 目录包含每个(网络、monitor、trigger 和过滤器)的示例 JSON 配置文件。 |
data/ 目录运行时数据存储:
区块处理状态
操作数据
临时文件
data/、logs/ 和 config/ 目录会被 gitignore,除了示例文件。 这些目录被挂载以持久化配置和运行时数据。 |
examples/ 目录提供实用的示例和示例配置,以帮助用户入门:
演示了各种网络的典型服务配置
作为自定义 monitor 的快速入门指南
作为配置最佳实践的参考
cmd/prometheus/ 目录Prometheus exporter 和监控基础设施:
dashboards/: Grafana 仪表板
datasources/: Prometheus 数据源
prometheus.yml: Prometheus 配置
grafana.ini: Grafana 配置
tests/ 目录包含全面的测试套件:
集成测试
基于属性的测试
Mock 实现
测试实用程序和助手
docs/ 目录项目文档:
用户指南
API 文档
配置示例
架构图
scripts/ 目录实用工具脚本,用于:
开发工作流程
文档生成
构建过程
部署助手
位于项目根目录中:
代码格式检查
Linting 规则
提交消息验证
核心构建文件:
Cargo.toml: 项目依赖项和元数据
rustfmt.toml: 代码格式规则
rust-toolchain.toml: Rust 版本和组件
该项目包括用于不同环境的 Docker 配置:
Dockerfile.development: 开发容器设置
Dockerfile.production: 可用于生产的容器
在运行 docker compose 之前,请根据你的需要在 .env 中设置你的 env 变量
| 有关在容器中运行 monitor 的详细信息,请参阅用户文档中的 Docker 部署 section。 |
- 原文链接: docs.openzeppelin.com/mo...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!