主题
fabric-x-committer · 模块详解
本仓库 submodule:fabric-x-committer/。本章引用的所有路径均为相对于该 submodule 根。
cmd/
| 入口 | 文件 | 关键符号 / 行号 |
|---|---|---|
committer | cmd/committer/main.go | committerCMD() line 27;子命令 version/start/healthcheck line 32-34 |
committer start | cmd/committer/start_cmd.go | 5 个子服务 line 30 |
committer healthcheck | cmd/committer/healthcheck_cmd.go | 5 个子服务 line 24 |
loadgen | cmd/loadgen/main.go | 子命令 version/start/make-artifacts line 44-46;flag --only-namespace/--only-workload line 84-85 |
服务 key(cmd/committer/config.go:17-21):sidecar / coordinator / vc / verifier / query。
service/
来源:service/。
service/sidecar/
| 项 | 文件 | 行号 |
|---|---|---|
blockStore struct | block_store.go | 25 |
newBlockStore | block_store.go | 43 |
appendBlock | block_store.go | 117 |
GetBlockHeight | block_store.go | 133 |
Service struct(gRPC 实现) | sidecar.go | 56 |
Deliver(实现 peer.DeliverServer) | sidecar.go | 483 |
Query 方法 GetBlockchainInfo / GetBlockByNumber / GetBlockByTxID / GetTxByID | sidecar.go | 644-675 |
Notifier gRPC 服务 OpenNotificationStream | notify.go | 134 |
service/coordinator/
| 项 | 文件 | 行号 |
|---|---|---|
Service struct | coordinator.go | 38-65 |
NewCoordinatorService | coordinator.go | 108 |
| 5 个内部 channel | coordinator.go | 67-93 |
其他服务目录
| 服务 | 目录 |
|---|---|
| Validator-Committer | service/vc/ |
| Verifier | service/verifier/ |
| Query | service/query/ |
具体 struct / func 行号 [未核] —— 在调研中未详细遍历。
api/
来源:api/servicepb/。
| Proto 文件 | service | 主要 RPC |
|---|---|---|
vcservice.proto | ValidationAndCommitService(行 23-31) | StartValidateAndCommitStream(24)、SetLastCommittedBlockNumber(25)、GetNextBlockNumberToCommit(26)、GetTransactionsStatus(27)、GetNamespacePolicies(28)、GetConfigTransaction(29)、SetupSystemTablesAndNamespaces(30) |
coordinator.proto | Coordinator(行 20-26) | BlockProcessing(21)、SetLastCommittedBlockNumber(22)、GetNextBlockNumberToCommit(23)、GetTransactionsStatus(24)、NumberOfWaitingTransactionsForStatus(25) |
verifier.proto | Verifier(行 19-21) | StartStream(20) |
loadgen.proto | LoadGenService(行 18-30) | AppendBatch(19)、GetRateLimit(20,HTTP GET /getRateLimit)、SetRateLimit(25,HTTP POST /setRateLimit) |
common.proto | 共用消息 | — |
integration/、loadgen/、mock/
| 路径 | 用途 |
|---|---|
integration/test/ | 测试用例 |
integration/runner/ | 测试运行器 |
loadgen/metrics/ | 性能指标 |
loadgen/adapters/ | 适配器层 |
loadgen/workload/ | 负载工作流 |
mock/ | mock 对象 |
docs/ — 文档
来源:mkdocs.yml:48-71。
| 章节 | 文件 |
|---|---|
| Home | index.md |
| Getting Started | setup.md |
| CLI Reference | cli/committer.md |
| Architecture | architecture.md |
| Deployment / Performance Tuning | deployment-guide.md、performance-tuning.md |
| Services | sidecar.md、coordinator.md、verification-service.md、validator-committer.md、query-service.md、notification-service.md |
| Configuration | tls-configurations.md、logging.md、metrics_reference.md、namespace-policy.md |
| Development | core-concurrency-pattern.md、loadgen-artifacts.md |
docs/architecture.md 共 5 个编号章节:1. Overview / 2. Architecture Diagram / 3. Service Components / 4. State Management / 5. Failure Recovery。
docker/
来源:docker/images/。
| 镜像 | Dockerfile | 行数 |
|---|---|---|
test_node | docker/images/test_node/Dockerfile | 72 |
release | docker/images/release/Dockerfile | 59 |
utils/
子包列表 [未核] —— Makefile:244 中有 bench-deliver,对应 utils/deliverorderer 等子包。
Makefile target
来源:Makefile。详见 03-quickstart · 测试目标、03-quickstart · 基准测试。
其它 target:
| 类别 | target | 行号 |
|---|---|---|
| 代码生成 | proto / lint-proto / mocks | 278 / 294 / 307 |
| Lint | lint / lint-go / lint-sql / lint-license / full-lint-% / full-lint | 382 / 384 / 389 / 393 / 398 / 401 |
| 文档生成 | generate-metrics-doc / check-metrics-doc / generate-cli-doc / check-cli-doc / generate-sample-tree / check-sample-tree | 409 / 412 / 415 / 418 / 421 / 424 |
关键依赖
看代码推荐路径
README.md+docs/setup.md→ 起步。docs/architecture.md→ 5 章节官方设计。cmd/committer/main.go+start_cmd.go→ 入口与 5 个服务。service/sidecar/block_store.go+sidecar.go→ 块存储与块分发 / 查询实现。service/coordinator/coordinator.go:38-108→ coordinator 5 通道与依赖管理。api/servicepb/*.proto→ gRPC 接口契约。loadgen/子目录 → 看负载生成。