91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HyperLeger Fabric SDK開發(三)——fabsdk

發布時間:2020-08-02 13:51:34 來源:網絡 閱讀:1567 作者:天山老妖S 欄目:軟件技術

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

额尔古纳市| 平安县| 兴国县| 宁晋县| 三亚市| 耿马| 桃园市| 米林县| 理塘县| 汶上县| 永安市| 高碑店市| 科技| 宜州市| 霍林郭勒市| 静宁县| 枝江市| 太原市| 卢氏县| 略阳县| 哈尔滨市| 南岸区| 渭南市| 吉林市| 隆昌县| 巧家县| 孟连| 青浦区| 嵊泗县| 隆安县| 阳春市| 兴业县| 渑池县| 闽侯县| 上饶县| 临汾市| 香河县| 噶尔县| 东源县| 安溪县| 吉木乃县|