本文档描述了 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!