主题
fabric-smart-client · 模块详解
本仓库 submodule:fabric-smart-client/。本章引用的所有路径均为相对于该 submodule 根。
cmd/
cmd/fsccli/main.go
来源:cmd/fsccli/main.go:24-31。
fsccli # 根(line 24)
├── artifactgen # nwo/cmd/artifactgen(line 26)
├── cryptogen # nwo/cmd/cryptogen(line 27)
├── view # View 服务客户端(line 28)
├── hsm # HSM 支持(line 29)
├── validate # cmd/fsccli/validate(line 30)
└── version # cmd/fsccli/version(line 31)CLI 框架:spf13/cobra v1.10.2(go.mod:44)。
view 子命令源码:platform/view/services/view/grpc/client/cmd(main.go:19 import)。
platform/
顶层目录
| 目录 | Go 文件数 | 用途 |
|---|---|---|
platform/common | ~85 | 共享驱动、配置、身份 |
platform/view | ~409 | 核心运行时 |
platform/fabric | ~378 | Fabric 集成 |
platform/fabricx | ~86 | Fabric-x 支持(实验) |
platform/view/ 关键文件
来源:platform/view/。
| 文件 | 关键符号 | 行号 |
|---|---|---|
platform/view/view/view.go | View 接口 | 10-14 |
platform/view/view/context.go | Context 接口 | 95-138 |
platform/view/view/session.go | Session 接口 | 65-85 |
platform/view/view/identity.go | Identity(identity.Identity 别名) | 14 |
platform/view/services/view/grpc/server/vm.go | ViewManager 接口 | 16-25 |
platform/view/services/view/registry.go | Registry struct + 方法 | 26-33、45-130 |
platform/view/services/view/factory.go | Factory 接口 | 14-17 |
platform/view/services/ 子包
| 子包 | 用途 |
|---|---|
config | 配置 |
id | 身份(ECDSA / X.509 / KMS) |
storage | KVS / DB / 绑定 |
sig | 签名 |
endpoint | 端点解析 |
events | 事件 |
grpc | gRPC 基础设施 |
tracing | OpenTelemetry |
web | Web 服务器 + 客户端 |
metrics | Prometheus |
comm | P2P 通信(host / provider / session) |
platform/common/driver/
| 文件 | 接口 / 类型 |
|---|---|
kvs.go | SignerInfoStore、AuditInfoStore、BindingStore、MetadataStore、EnvelopeStore、EndorseTxStore |
config.go | ConfigService |
sigservice.go | SigService、SigningIdentity、Signer、Verifier |
committer.go | TransactionFilter、FinalityListener |
vault.go | Vault、VaultStore、VaultReader、QueryExecutor |
finality.go | ListenerManager、FinalityEvent |
rwset.go | RWSet、GetStateOpt |
types.go | NamedDriver、PersistenceType |
iterator.go | ValidationCode、ValidationCodeProvider |
pagination.go | Pagination、PageIterator |
integration/
来源:integration/。
| 子目录 | 子项目 |
|---|---|
integration/fabric/ | iou / atsa / events / stoprestart / twonets |
integration/fabricx/ | iou / simple / multiendorsement / deployment |
integration/fsc/ | pingpong / stoprestart |
integration/benchmark/ | grpc/remote / node/remote / views |
integration/nwo/ | 网络编排框架(生成拓扑 / 配置 / 加密材料) |
integration/reporting/ | prometheus / jaeger |
具体子项目的功能描述 [未核] —— 需读各自 README。
node/
node/start/start.go 存在;完整生命周期管理 [未核]。
docs/
来源:docs/。
| 顶层文档 | 内容 |
|---|---|
docs/README.md(29 行) | 文档导航入口 |
docs/core-concepts.md(206 行) | FSC 架构与核心概念 |
docs/configuration.md(606 行) | 共享节点配置 |
docs/platform/view/
| 文件 | 内容 |
|---|---|
README.md | View 平台概览 |
programming-model.md | View 编程模型 |
view-sdk.md | View SDK 架构 |
view-api.md | 公共 API + 运行时语义(Context / Session / View / Identity) |
configuration.md | View 配置 |
security-model.md | View 安全模型 |
services/view-service.md | View 服务编排 |
services/config-service.md | 配置服务 |
services/db-driver.md | DB 驱动 |
services/database-layout.md | DB 布局 |
services/runtime-db-access.md | 运行时 DB 访问 |
services/monitoring.md | 监控与追踪 |
services/comm/readme.md | 通信服务 |
services/comm/websocket.md | WebSocket |
services/comm/libp2p.md | libp2p |
services/comm/multiplexer.md | 多路复用 |
docs/platform/fabric/ 与 docs/platform/fabric-x/
| 文件 | 内容 |
|---|---|
fabric/README.md | Fabric 平台概览 |
fabric/fabric-sdk.md | Fabric SDK 架构 |
fabric/drivers.md | Fabric 驱动架构 |
fabric/configuration.md | Fabric 配置 |
fabric-x/README.md | Fabric-x 概述(实验) |
fabric-x/configuration.md | Fabric-x 配置 |
fabric-x/channelconfig.md | Fabric-x 通道配置 |
docs/dev/ 与 docs/reference/
| 文件 | 内容 |
|---|---|
dev/development.md | 开发环境与工具 |
dev/signing.md | DCO + GPG 提交签名 |
dev/workflow.md | 贡献工作流 |
dev/merge-conflicts.md | 合并冲突 |
dev/rebasing.md | rebase 指南 |
reference/fsc-cli.md | FSC CLI 参考 |
reference/node-cli.md | Node CLI 参考 |
Makefile target
详见 03-quickstart。Makefile:25-28 还有 help 列出所有命令。
go.mod 关键依赖
| 类别 | 依赖(部分) | 版本 |
|---|---|---|
| Fabric | hyperledger/fabric-chaincode-go/v2 / fabric-contract-api-go/v2 / fabric-protos-go-apiv2 / fabric-lib-go / fabric-config | v2.3.0 / v2.2.0 / v0.3.7 / v1.1.3 / v0.3.0 |
| Fabric-x | hyperledger/fabric-x-common | v0.2.4 |
| 身份 | IBM/idemix / IBM/mathlib | v0.0.2-0.20250313 / v0.0.3-0.20250709 |
| CLI | spf13/cobra / spf13/viper | v1.10.2 / v1.21.0 |
| Web | gin-gonic/gin / gorilla/websocket | v1.10.0 / v1.5.3 |
| P2P | libp2p/go-libp2p / go-libp2p-kad-dht | v0.48.0 / v0.39.0 |
| DB | jackc/pgx/v5 / Masterminds/squirrel | v5.9.2 / v1.5.4 |
| 测试 | onsi/ginkgo/v2 / onsi/gomega / stretchr/testify / DATA-DOG/go-sqlmock | v2.27.3 / v1.38.2 / v1.11.1 / v1.5.2 |
| 监控 | prometheus/client_golang / go.opentelemetry.io/* | v1.23.2 / v1.43.0 等(otelgrpc v0.54.0) |
| 配置 | knadh/koanf/v2 / miracl/conflate | v2.3.4 / v1.3.4 |
来源:go.mod(304 行)。
看代码推荐路径
README.md→ 项目愿景与示例索引。docs/core-concepts.md→ View / Identity / Session / FSC Stack 概念。platform/view/view/view.go:10-14、context.go:95-138→ 核心接口。platform/view/services/view/registry.go:26-130→ 注册与查找机制。integration/fsc/pingpong/README.md→ 最小示例。cmd/fsccli/main.go→ CLI 入口。platform/common/driver/→ 驱动接口定义。