HyperLeger织物SDK开发(三)——fabsdk
一、fabsdk简介
1, fabsdk简介
fabsdk是织物SDK的主要包,fabsdk支持客户端使用Hyperledger织物区块链网络.fabsdk基于配置创建上下文环境,上下文环境会在客户端包使用。
官方文档:https://godoc.org/github.com/hyperledger/fabric-sdk-go/pkg/fabsdk
2, fabsdk使用基本流程
Fabsdk使用基本流程如下:
,使用配置实例化Fabsdk实例
B,使用Fabsdk实例基于组织和用户创建上下文环境
C,以上下文环境作为参数,使用新函数创建客户端实例。可以为需要的每个上下文环境创建一个客户端实例。
D,使用每个客户端实例提供的功能函数编写业务逻辑,构建解决方案。
E调用fsbsdk.Close()函数释放资源和缓存。
二,fabsdk常用接口
1,类型定义
<代码> var ErrAnonymousIdentity=错误。新(“失踪凭证”)代码>
如果创建身份的选项既不包含用户名也不包含身份,返回ErrAnonymousIdentity。
<代码>类型选择func(选择*选项)误差代码>
选项用于配置SDK。
2,获取FabricSDK实例
<代码> FabricSDK struct类型{ 选择选项 提供者* context.Provider cryptoSuite core.CryptoSuite }代码>
FabricSDK为SDK管理的客户端提供访问(和上下文)
<代码>新(configProvider核心函数。ConfigProvider,选择选项)(* FabricSDK,错误)代码>
新根据提供的选项集初始化SDK。ConfigOptions提供应用程序配置。
使用示例如下:
<代码> SDK,呃=fabsdk.New (config.FromFile (“。/config.yaml”)) 代码>
3,获取通道上下文
<代码> func (sdk * FabricSDK) ChannelContext (channelID字符串,选项…ContextOption) contextApi.ChannelProvider 代码>
ChannelContext创建并返回通道上下文。
4,关闭FabricSDK实例
<代码> func (sdk * FabricSDK)关闭()代码>
释放sdk维护的缓存和连接
5,获取FabricSDK配置后台
<代码> func (sdk * FabricSDK)配置()(核心。ConfigBackend,错误)代码>
配置返回所有SDK配置类型使用的配置后端
6,创建上下文客户端
<代码> func (sdk * FabricSDK)上下文(选项…ContextOption) contextApi.ClientProvider 代码>
上下文创建并返回包含所有必需提供者的上下文客户端。
7选项构建
<代码> identityOptions struct类型{ signingIdentity msp.SigningIdentity orgName字符串 用户名的字符串 } 类型ContextOption func (s * identityOptions)误差代码>
ContextOption提供创建会话的参数
<代码> func WithIdentity (signingIdentity msp.SigningIdentity) ContextOption 代码>
WithIdentity使用预先构造的身份对象作为会话的凭证
<代码> func订货(用户名字符串)ContextOption 代码>
订货使用指定用户加载标识/身份
<代码> WithOrg func (org字符串)ContextOption 代码>
WithOrg使用指定的组织
使用示例:
<代码> var ( sdk * fabsdk.FabricSDK org=" org1 " 用户="管理" ) ctx:=sdk.Context (fabsdk.WithOrg(组织),fabsdk.WithUser(用户)代码>
<代码>类型选择func(选择*选项)错误 func WithCorePkg(核心sdkApi.CoreProviderFactory)选项代码>
将核心实现注入SDK
<代码> func WithCryptoSuiteConfig (cryptoConfigs…接口{})选择代码>
WithCryptoSuiteConfig向SDK注入CryptoSuiteConfig接口,SDK接收每个CryptoSuiteConfig实现的全套接口或CryptoSuiteConfig每个实现的的子接口列表
<代码> func WithEndpointConfig (endpointConfigs…接口{})选择代码>
WithEndpointConfig向SDK注入EndpointConfig接口,SDK接收每个EndpointConfig实现的全套接口或每个EndpointConfig实现的的子接口列表
<代码> func WithIdentityConfig (identityConfigs…接口{})选择代码>
WithIdentityConfig向SDK注入IdentityConfig接口,SDK接收每个IdentityConfig实现的全套接口或每个IdentityConfig实现的的子接口列表
<代码> func WithLoggerPkg (logger api.LoggerProvider)选项代码>
WithLoggerPkg将记录器实现注入到SDK中
<代码> func WithMSPPkg (msp sdkApi.MSPProviderFactory)选项代码>
WithMSPPkg将msp实现注入SDK
<代码> func WithServicePkg(服务sdkApi.ServiceProviderFactory)选择代码>
WithServicePkg将服务实现注入SDK