fabsdk是Fabric SDK的主要包,fabsdk支持客户端使用Hyperledger Fabric区块链网络。fabsdk基于配置建立上下文环境,上下文环境会在client包使用。
官方文档:
https://godoc.org/github.com/hyperledger/fabric-sdk-go/pkg/fabsdkgit
Fabsdk使用基本流程以下:
A、使用配置实例化fabsdk实例
B、使用fabsdk实例基于组织和用户建立上下文环境
C、以上下文环境做为参数,使用New函数建立客户端实例。能够为须要的每一个上下文环境建立一个客户端实例。
D、使用每一个客户端实例提供的功能函数编写业务逻辑,构建解决方案。
E、调用fsbsdk.Close()函数释放资源和缓存。github
var ErrAnonymousIdentity = errors.New("missing credentials")
若是建立身份的选项既不包含用户名也不包含身份,返回ErrAnonymousIdentity。type Option func(opts *options) error
Option用于配置SDK。后端
type FabricSDK struct { opts options provider *context.Provider cryptoSuite core.CryptoSuite }
FabricSDK为SDK管理的客户端提供访问(和上下文)func New(configProvider core.ConfigProvider, opts ...Option) (*FabricSDK, error)
New根据提供的选项集初始化SDK。 ConfigOptions提供应用程序配置。
使用示例以下:sdk, err = fabsdk.New(config.FromFile("./config.yaml"))
api
func (sdk *FabricSDK) ChannelContext(channelID string, options ...ContextOption) contextApi.ChannelProvider
ChannelContext建立并返回通道上下文。缓存
func (sdk *FabricSDK) Close()
释放SDK维护的缓存和链接网络
func (sdk *FabricSDK) Config() (core.ConfigBackend, error)
Config返回全部SDK配置类型使用的配置后端ide
func (sdk *FabricSDK) Context(options ...ContextOption) contextApi.ClientProvider
Context建立并返回包含全部必需提供者的上下文客户端。函数
type identityOptions struct { signingIdentity msp.SigningIdentity orgName string username string } type ContextOption func(s *identityOptions) error
ContextOption提供建立会话的参数func WithIdentity(signingIdentity msp.SigningIdentity) ContextOption
WithIdentity使用预先构造的身份对象做为会话的凭证func WithUser(username string) ContextOption
WithUser使用指定用户加载标识/身份func WithOrg(org string) ContextOption
WithOrg使用指定的组织
使用示例:区块链
var ( sdk *fabsdk.FabricSDK org = "org1" user = "Admin" ) ctx := sdk.Context(fabsdk.WithOrg(org), fabsdk.WithUser(user))
type Option func(opts *options) error func WithCorePkg(core sdkApi.CoreProviderFactory) Option
将核心实现注入SDKfunc WithCryptoSuiteConfig(cryptoConfigs ...interface{}) Option
WithCryptoSuiteConfig向SDK注入CryptoSuiteConfig接口,SDK接收每一个CryptoSuiteConfig实现的全套接口或CryptoSuiteConfig每一个实现的的子接口列表func WithEndpointConfig(endpointConfigs ...interface{}) Option
WithEndpointConfig向SDK注入EndpointConfig接口,SDK接收每一个EndpointConfig实现的全套接口或每一个EndpointConfig实现的的子接口列表func WithIdentityConfig(identityConfigs ...interface{}) Option
WithIdentityConfig向SDK注入IdentityConfig接口,SDK接收每一个IdentityConfig实现的全套接口或每一个IdentityConfig实现的的子接口列表func WithLoggerPkg(logger api.LoggerProvider) Option
WithLoggerPkg将logger实现注入到SDK中func WithMSPPkg(msp sdkApi.MSPProviderFactory) Option
WithMSPPkg将MSP实现注入SDKfunc WithServicePkg(service sdkApi.ServiceProviderFactory) Option
WithServicePkg将服务实现注入SDKui