写在前面
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会更多):