写在前面
Fabric-Sdk-Go可以实现创建通道、加入通道、链码打包、链码生命周期、调用链码过程的自动化。SDK起到连接Fabric网络和服务端的作用。
结构
config.yaml
配置文件:描述组织结构、通道结构、所有配置文件、证书的路径chaincode
:链码文件所在的目录fixtures
:fabric
基础网络所有文件所在的目录sdkInit
:sdk
核心代码sdkSetting.go
:实现了包括Setup
、CreateAndJoinChannel
、CreateCCLifecycle
等基础功能的函数integration.go
:实现了包括DiscoverLocalPeers
、InitService
等基础功能的函数sdkInfo.go
:定义了一些组织和SDK
中用到的结构体set/get.go
:复制调用链码的两个函数
main.go
:- 组织的所有信息及其配置文件的路径
- 调用
sdk
的Setup
、CreateAndJoinChannel
、CreateCCLifecycle
、InitService
等方法 - 调用
set/get
方法,传入键值对后查询键值
启动
- 设置
GOPATH
为/root/go
,在$GOPATH/src
路径下拉取项目
|
|
- 启动节点
|
|
- 启动项目(第一次启动需要
go build
)
|
|
一些BUG的解决方法:
若没有修改
GOPAT
,则修改config.yaml
和main.go
中路径为$GOPATH
路径
- 找不到节点的话,可以将
config.yaml
中的url
改为localhost:
- 连接交易失败的话,可以将
config.yaml
中的entityMatchers
节点每个单列写出来遇到一个BUG,试了一天也没解决,尝试过的解决方法:
- 更换
go
版本:1.15.9
、1.16
、1.17
- 切换
root
用户:在/root/go
目录下操作- 更改
config.yaml
文件:在上面提到了问题已解决(2023.01.06):调整
Clash
为Direct
,直接关闭无效,前一天就是直接关了Clash
但无效最后还是报错的话,照下面文档自己从头搭一个环境(感觉遇到的BUG会更多):