码迷,mamicode.com
首页 > 其他好文 > 详细

HyperLeger Fabric SDK开发(三)——fabsdk

时间:2018-11-29 21:48:09      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:git   凭证   backend   标识   基本   配置   erro   注入   sdk   

HyperLeger Fabric SDK开发(三)——fabsdk

一、fabsdk简介

1、fabsdk简介

fabsdk是Fabric SDK的主要包,fabsdk支持客户端使用Hyperledger Fabric区块链网络。fabsdk基于配置创建上下文环境,上下文环境会在client包使用。
官方文档:
https://godoc.org/github.com/hyperledger/fabric-sdk-go/pkg/fabsdk

2、fabsdk使用基本流程

Fabsdk使用基本流程如下:
A、使用配置实例化fabsdk实例
B、使用fabsdk实例基于组织和用户创建上下文环境
C、以上下文环境作为参数,使用New函数创建客户端实例。可以为需要的每个上下文环境创建一个客户端实例。
D、使用每个客户端实例提供的功能函数编写业务逻辑,构建解决方案。
E、调用fsbsdk.Close()函数释放资源和缓存。

二、fabsdk常用接口

1、类型定义

var ErrAnonymousIdentity = errors.New("missing credentials")
如果创建身份的选项既不包含用户名也不包含身份,返回ErrAnonymousIdentity。
type Option func(opts *options) error
Option用于配置SDK。

2、获取FabricSDK实例

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"))

3、获取通道上下文

func (sdk *FabricSDK) ChannelContext(channelID string, options ...ContextOption) contextApi.ChannelProvider
ChannelContext创建并返回通道上下文。

4、关闭FabricSDK实例

func (sdk *FabricSDK) Close()
释放SDK维护的缓存和连接

5、获取FabricSDK配置后台

func (sdk *FabricSDK) Config() (core.ConfigBackend, error)
Config返回所有SDK配置类型使用的配置后端

6、创建上下文客户端

func (sdk *FabricSDK) Context(options ...ContextOption) contextApi.ClientProvider
Context创建并返回包含所有必需提供者的上下文客户端。

7、选项构建

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 

将核心实现注入SDK
func 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实现注入SDK
func WithServicePkg(service sdkApi.ServiceProviderFactory) Option
WithServicePkg将服务实现注入SDK

HyperLeger Fabric SDK开发(三)——fabsdk

标签:git   凭证   backend   标识   基本   配置   erro   注入   sdk   

原文地址:http://blog.51cto.com/9291927/2324009

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!