HyperLeger Fabric SDK开发(三)——fabsdk

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

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

时间: 2024-11-05 18:55:03

HyperLeger Fabric SDK开发(三)——fabsdk的相关文章

HyperLeger Fabric SDK开发(一)——Fabric SDK开发简介

HyperLeger Fabric SDK开发(一)--Fabric SDK开发简介 一.Fabric SDK简介 1.Fabric SDK简介 Farbric的Peer节点和Orderer节点都提供了基于gRPC协议的接口,用于和Peer节点与Orderer节点进行命令/数据交互.为了简化开发,为开发人员开发应用程序提供操作Fabric区块链网络的API,Fabric官方提供了多种语言版本的SDK.Fabric提供了三种语言版本的SDK,分别如下:A.Fabric Nodejs SDKB.Fa

HyperLeger Fabric SDK开发(四)——channel

HyperLeger Fabric SDK开发(四)--channel 一.channel简介 1.channel?简介 pkg/client/channel支持访问Fabric网络上的通道.channel客户端实例提供与指定通道上的Peer节点进行交互的处理函数.channel客户端可以在指定通道上查询链码,执行链码以及注册或注销链码事件.如果应用程序需要与Fabric网络的多条通道进行交互,需要为每条通道创建一个单独的通道客户端实例.官方文档:https://godoc.org/github

HyperLeger Fabric SDK开发(六)——resmgmt

HyperLeger Fabric SDK开发(六)--resmgmt 一.resmgmt简介 1.resmgmt简介 resmgmt支持在Fabric网络上创建和更新资源.resmgmt允许管理员创建.更新通道,并允许Peer节点加入通道.管理员还可以在Peer节点上执行与链码相关的操作,例如安装,实例化和升级链码.官方文档:https://godoc.org/github.com/hyperledger/fabric-sdk-go/pkg/client/resmgmt 2.resmgmt使用

HyperLeger Fabric SDK开发(七)——ledger

HyperLeger Fabric SDK开发(七)--ledger 一.ledger简介 1.ledger简介 ledger包支持在Fabric网络上的指定通道上启用账本查询.如果应用程序需要对多个通道进行账本查询,需要为每个通道的账本客户端创建一个单独实例.账本客户端支持以下查询:QueryInfo,QueryBlock,QueryBlockByHash,QueryBlockByTxID,QueryTransaction和QueryConfig.官方文档:https://godoc.org/

HyperLeger Fabric SDK开发(二)——Fabric SDK配置

HyperLeger Fabric SDK开发(二)--Fabric SDK配置 一.Fabric SDK配置 Fabric区块链网络应用程序需要大量的参数,用于连接Fabric区块链网络.通常将Fabric区块链网络应用程序所需的参数放到一个配置文件进行管理,配置文件定义Fabric SDK Go的配置和用户自定义参数,指定了连接Fabric区块链网络所需的全部信息,例如Fabric区块链网络组件的主机名和端口等.Fabric SDK GO为应用程序提供的配置文件通常使用yaml文件格式编写,

HyperLeger Fabric SDK开发(八)——msp

HyperLeger Fabric SDK开发(八)--msp 一.msp简介 1.msp简介 msp支持在Fabric网络上创建和更新用户.MSP客户端支持以下操作:Enroll,Reenroll,Register,Revoke和GetSigningIdentity.官方文档:https://godoc.org/github.com/hyperledger/fabric-sdk-go/pkg/client/msp 2.msp使用流程 msp使用的基本流程如下:A.准备客户端上下文B.创建msp

HyperLeger Fabric开发(七)——HyperLeger Fabric链码开发

HyperLeger Fabric开发(七)--HyperLeger Fabric链码开发 一.链码开发模式 1.链码开发模式简介 Fabric的链码开发调试比较繁琐.在不使用链码开发模式的情况下,链码不能在本地测试,必须部署到docker,install和instantiate后,Peer节点会在新的容器中启动链码.但只能通过docker logs查看链码日志,通过打印日志的方式进行链码调试.如果对链码进行了修改,需要重新开始上述流程.为了简化Fabric链码开发的调试过程,Fabric引入了

HyperLeger Fabric开发(八)——HyperLeger Fabric链码开发测试

HyperLeger Fabric开发(八)--HyperLeger Fabric链码开发测试 一.链码实例 SACC项目链码实例如下: package main import ( "fmt" "github.com/hyperledger/fabric/core/chaincode/shim" "github.com/hyperledger/fabric/protos/peer" ) // SimpleAsset implements a si

HyperLeger Fabric开发(三)——HyperLeger Fabric架构

HyperLeger Fabric开发(三)--HyperLeger Fabric架构 一.HyperLeger Fabric架构简介 1.通道简介 商业应用的一个重要的需求是私密×××易,为此Fabric设计了通道(Channel)来提供成员之间的隐私保护.通道是部分网络成员之间拥有独立的通信渠道,在通道中发送的交易只有属于通道的成员才可见,因此通道可以看作是Fabric的网络中部分成员的私有通信子网.通道由排序服务管理.在创建通道的时候,需要定义通道的成员和组织.锚节点(anchor pee