主题
fabric-x-orderer · 架构
4 个角色
来源:README.md:19-32、node/、docs/architecture.md。
关键 struct
来源:源码 node/。
| 角色 | 包 | 关键 struct | 出处 |
|---|---|---|---|
| Router | node/router/ | Router | node/router/router.go:48 |
| Batcher | node/batcher/ | Batcher | node/batcher/batcher.go:54 |
| Consensus | node/consensus/ | Consensus | node/consensus/consensus.go:90 |
| Assembler | node/assembler/ | Assembler | node/assembler/assembler.go:32 |
| CLI | node/server/ | CLI | node/server/arma.go:40 |
CLI 命令树
来源:node/server/arma.go:224-233。
NewCLI() 用 kingpin 构造命令,描述:"Launches an Arma node (Router | Assembler | Batcher | Consensus)"。
4 个子命令(node/server/arma.go:52,help map line 32-35):
| 命令 | 用途 |
|---|---|
router | 运行 router 节点 |
assembler | 运行 assembler 节点 |
batcher | 运行 batcher 节点 |
consensus | 运行 consensus 节点 |
入口:cmd/arma/main.go:9-18,arma.NewCLI()(line 16),channel 驱动执行(line 17)。
node/ 包结构
来源:node/。
| 包 | 用途 |
|---|---|
node/router/ | Router 节点 |
node/batcher/ | Batcher 节点 |
node/consensus/ | Consenter 节点 |
node/assembler/ | Assembler 节点 |
node/server/ | CLI 与节点启动 |
node/comm/ | 通信层 |
node/config/ | 节点配置 |
node/crypto/ | 密码学 |
node/delivery/ | 块交付 |
node/ledger/ | 分类账 |
node/protos/ | protobuf 定义(comm/communication.proto、state/state.proto) |
node/examples/ | 示例 / sample 测试脚本 |
node/utils/ | 工具 |
common/ 包结构
来源:common/。
| 包 | 用途 |
|---|---|
common/configstore/ | 配置存储 |
common/deliver/ | 原子广播 API 实现 |
common/deliverclient/ | 块交付客户端 |
common/filerepo/ | 文件仓库 |
common/ledger/ | 分类账接口 |
common/monitoring/ | 监控 |
common/msputils/ | MSP 工具 |
common/policy/ | 策略 |
common/requestfilter/ | 请求过滤 |
common/tools/armageddon/ | 配置生成工具 |
common/types/ | 共享类型(PartyID、ShardID、BatchID 等) |
common/utils/ | 工具 |
关键依赖
来源:go.mod:5-33。
| 依赖 | 版本 | 备注 |
|---|---|---|
github.com/alecthomas/kingpin | v2.2.6+incompatible | CLI 框架 |
github.com/hyperledger-labs/SmartBFT | v1.0.1 | BFT 共识 |
github.com/hyperledger/fabric-x-common | v0.2.4 | — |
github.com/hyperledger/fabric | v3.1.1(tag) | — |
github.com/hyperledger/fabric-protos-go-apiv2 | v0.3.7 | — |
github.com/syndtr/goleveldb | v1.0.1-0.20220721030215 | LevelDB |
go.uber.org/zap | v1.27.1 | 日志 |
google.golang.org/grpc | v1.79.3 | gRPC |
文档结构
来源:docs/。
| 文档 | 用途 |
|---|---|
docs/api.md | gRPC 服务定义 + API |
docs/architecture.md | 系统架构(11 个章节,见 04-modules · docs) |
docs/cli/arma.md | arma CLI 文档 |
docs/cli/armageddon.md | armageddon 配置工具文档 |
docs/monitoring/metrics.md | 监控与指标 |