Skip to content

fabric-x-committer · 模块详解

本仓库 submodule:fabric-x-committer/。本章引用的所有路径均为相对于该 submodule 根。

cmd/

入口文件关键符号 / 行号
committercmd/committer/main.gocommitterCMD() line 27;子命令 version/start/healthcheck line 32-34
committer startcmd/committer/start_cmd.go5 个子服务 line 30
committer healthcheckcmd/committer/healthcheck_cmd.go5 个子服务 line 24
loadgencmd/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 structblock_store.go25
newBlockStoreblock_store.go43
appendBlockblock_store.go117
GetBlockHeightblock_store.go133
Service struct(gRPC 实现)sidecar.go56
Deliver(实现 peer.DeliverServersidecar.go483
Query 方法 GetBlockchainInfo / GetBlockByNumber / GetBlockByTxID / GetTxByIDsidecar.go644-675
Notifier gRPC 服务 OpenNotificationStreamnotify.go134

service/coordinator/

文件行号
Service structcoordinator.go38-65
NewCoordinatorServicecoordinator.go108
5 个内部 channelcoordinator.go67-93

其他服务目录

服务目录
Validator-Committerservice/vc/
Verifierservice/verifier/
Queryservice/query/

具体 struct / func 行号 [未核] —— 在调研中未详细遍历。

api/

来源:api/servicepb/

Proto 文件service主要 RPC
vcservice.protoValidationAndCommitService(行 23-31)StartValidateAndCommitStream(24)、SetLastCommittedBlockNumber(25)、GetNextBlockNumberToCommit(26)、GetTransactionsStatus(27)、GetNamespacePolicies(28)、GetConfigTransaction(29)、SetupSystemTablesAndNamespaces(30)
coordinator.protoCoordinator(行 20-26)BlockProcessing(21)、SetLastCommittedBlockNumber(22)、GetNextBlockNumberToCommit(23)、GetTransactionsStatus(24)、NumberOfWaitingTransactionsForStatus(25)
verifier.protoVerifier(行 19-21)StartStream(20)
loadgen.protoLoadGenService(行 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

章节文件
Homeindex.md
Getting Startedsetup.md
CLI Referencecli/committer.md
Architecturearchitecture.md
Deployment / Performance Tuningdeployment-guide.mdperformance-tuning.md
Servicessidecar.mdcoordinator.mdverification-service.mdvalidator-committer.mdquery-service.mdnotification-service.md
Configurationtls-configurations.mdlogging.mdmetrics_reference.mdnamespace-policy.md
Developmentcore-concurrency-pattern.mdloadgen-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_nodedocker/images/test_node/Dockerfile72
releasedocker/images/release/Dockerfile59

详见 03-quickstart · Docker 镜像

utils/

子包列表 [未核] —— Makefile:244 中有 bench-deliver,对应 utils/deliverorderer 等子包。

Makefile target

来源:Makefile。详见 03-quickstart · 测试目标03-quickstart · 基准测试

其它 target:

类别target行号
代码生成proto / lint-proto / mocks278 / 294 / 307
Lintlint / lint-go / lint-sql / lint-license / full-lint-% / full-lint382 / 384 / 389 / 393 / 398 / 401
文档生成generate-metrics-doc / check-metrics-doc / generate-cli-doc / check-cli-doc / generate-sample-tree / check-sample-tree409 / 412 / 415 / 418 / 421 / 424

关键依赖

详见 02-architecture · 关键依赖

看代码推荐路径

  1. README.md + docs/setup.md → 起步。
  2. docs/architecture.md → 5 章节官方设计。
  3. cmd/committer/main.go + start_cmd.go → 入口与 5 个服务。
  4. service/sidecar/block_store.go + sidecar.go → 块存储与块分发 / 查询实现。
  5. service/coordinator/coordinator.go:38-108 → coordinator 5 通道与依赖管理。
  6. api/servicepb/*.proto → gRPC 接口契约。
  7. loadgen/ 子目录 → 看负载生成。