zoukankan      html  css  js  c++  java
  • 超级账本HyperLedger:Fabric Golang SDK的使用(附视频)

    作者: 李佶澳   转载请保留:原文地址   发布时间:2018/07/28 13:34:00

    说明

    HyperLedger Fabric的Golang SDK终于调通了,眼泪哗哗地。。 @2018-07-28 13:36:06

    操作演示、配置文件和代码讲解视频在网易云课堂《HyperLeger Fabric进阶实战课》第五章中。

    获取示例代码

    源代码托管在github: 源代码地址fabric-sdk-go

    go get github.com/introclass/hyperledger-fabric-sdks-usage
    cd $GOPATH/src/github.com/introclass/hyperledger-fabric-sdks-usage/go
    

    准备msp和tls证书

    将你自己环境的crypto-config复制到hyperledger-fabric-sdks-usage/go中。

    crypto-config中只需要包含需要的msp和tls证书,需要哪些证书在调用go-sdk的程序使用的config.yaml中指定了。

    查询合约

    01-query中通过go-sdk做了一个最简单操作:链接peer,调用合约,查询账本。

    $ cd 01-query
    
    $ ./01-query
    AdminIdentify is found:
    &{Admin peers.member1.example.com [45 45 45 45 45 66 69 71 73 78
    ...
    69 45 45 45 45 45 10] 0xc420329a90}
    response is key1value
    

    源代码如下:

    package main
    
    import (
    	"fmt"
    	"github.com/hyperledger/fabric-sdk-go/pkg/client/channel"
    	mspclient "github.com/hyperledger/fabric-sdk-go/pkg/client/msp"
    	"github.com/hyperledger/fabric-sdk-go/pkg/core/config"
    	"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
    	"log"
    )
    
    func main() {
    
    	//读取配置文件,创建SDK
    	configProvider := config.FromFile("./config.yaml")
    	sdk, err := fabsdk.New(configProvider)
    	if err != nil {
    		log.Fatalf("create sdk fail: %s
    ", err.Error())
    	}
    
    	//读取配置文件(config.yaml)中的组织(member1.example.com)的用户(Admin)
    	mspClient, err := mspclient.New(sdk.Context(), mspclient.WithOrg("member1.example.com"))
    	if err != nil {
    		log.Fatalf("create msp client fail: %s
    ", err.Error())
    	}
    
    	adminIdentity, err := mspClient.GetSigningIdentity("Admin")
    	if err != nil {
    		log.Fatalf("get admin identify fail: %s
    ", err.Error())
    	} else {
    		fmt.Println("AdminIdentify is found:")
    		fmt.Println(adminIdentity)
    	}
    
    	//调用合约
    	channelProvider := sdk.ChannelContext("mychannel",
    		fabsdk.WithUser("Admin"),
    		fabsdk.WithOrg("member1.example.com"))
    
    	channelClient, err := channel.New(channelProvider)
    	if err != nil {
    		log.Fatalf("create channel client fail: %s
    ", err.Error())
    	}
    
    	var args [][]byte
    	args = append(args, []byte("key1"))
    
    	request := channel.Request{
    		ChaincodeID: "mycc",
    		Fcn:         "query",
    		Args:        args,
    	}
    	response, err := channelClient.Query(request)
    	if err != nil {
    		log.Fatal("query fail: ", err.Error())
    	} else {
    		fmt.Printf("response is %s
    ", response.Payload)
    	}
    }
    

    参考

    1. Tutorial Hyperledger Fabric SDK Go: How to build your first app?

    限时活动,每邀请一人即返回25元!

  • 相关阅读:
    20110603 本日跌的股票之后一段时间轻易不要碰
    一日三省
    火电排污新标准年内出台 撬动千亿脱硝市场
    20082011大股东增持专题
    收评:5月24日资金流向(摘自益盟)
    2011年中期业绩预增前20家公司
    2011大股东十大增持概念股全景图
    放不下期货
    从众是通向地狱最廉价的门票
    在ASP.NET中获取Get方式和Post方式提交的数据
  • 原文地址:https://www.cnblogs.com/lijiaocn/p/9382728.html
Copyright © 2011-2022 走看看