返回

Fabric Sdk Go(五)

写在前面

Fabric-Sdk-Go可以实现创建通道、加入通道、链码打包、链码生命周期、调用链码过程的自动化。SDK起到连接Fabric网络和服务端的作用。

结构

  1. config.yaml配置文件:描述组织结构、通道结构、所有配置文件、证书的路径
  2. chaincode:链码文件所在的目录
  3. fixturesfabric基础网络所有文件所在的目录
  4. sdkInitsdk核心代码
    • sdkSetting.go:实现了包括SetupCreateAndJoinChannelCreateCCLifecycle等基础功能的函数
    • integration.go:实现了包括DiscoverLocalPeersInitService等基础功能的函数
    • sdkInfo.go:定义了一些组织和SDK中用到的结构体
    • set/get.go:复制调用链码的两个函数
  5. main.go
    • 组织的所有信息及其配置文件的路径
    • 调用sdkSetupCreateAndJoinChannelCreateCCLifecycleInitService等方法
    • 调用set/get方法,传入键值对后查询键值

启动

  1. 设置GOPATH/root/go,在$GOPATH/src路径下拉取项目
1
export GOPATH=/root/go && cd $GOPATH/src && git clone https://github.com/sxguan/fabric-go-sdk.git
  1. 启动节点
1
cd ./fabric-go-sdk/fixtures/ && docker-compose up -d
  1. 启动项目(第一次启动需要go build)
1
cd .. && go build && ./fabric-go-sdk

一些BUG的解决方法:

若没有修改GOPAT,则修改config.yamlmain.go中路径为$GOPATH路径

  • 找不到节点的话,可以将config.yaml中的url改为localhost:
  • 连接交易失败的话,可以将config.yaml中的entityMatchers节点每个单列写出来

遇到一个BUG,试了一天也没解决,尝试过的解决方法:

  • 更换go版本:1.15.91.161.17
  • 切换root用户:在/root/go目录下操作
  • 更改config.yaml文件:在上面提到了

问题已解决(2023.01.06):调整ClashDirect,直接关闭无效,前一天就是直接关了Clash但无效

最后还是报错的话,照下面文档自己从头搭一个环境(感觉遇到的BUG会更多):

Built with Hugo
Theme Stack designed by Jimmy