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