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

溫馨提示×

溫馨提示×

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

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

HyperLedger中Fabric Golang SDK怎么用

發布時間:2021-12-07 09:34:42 來源:億速云 閱讀:284 作者:小新 欄目:互聯網科技

小編給大家分享一下HyperLedger中Fabric Golang SDK怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

獲取示例代碼

源代碼托管在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\n", 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\n", err.Error())
	}

	adminIdentity, err := mspClient.GetSigningIdentity("Admin")
	if err != nil {
		log.Fatalf("get admin identify fail: %s\n", 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\n", 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\n", response.Payload)
	}
}

以上是“HyperLedger中Fabric Golang SDK怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

巢湖市| 古蔺县| 边坝县| 邵武市| 西城区| 宁波市| 龙门县| 舟曲县| 介休市| 即墨市| 柳江县| 沐川县| 米脂县| 那曲县| 延安市| 宣威市| 涟源市| 上犹县| 乌拉特后旗| 武宣县| 徐汇区| 略阳县| 周宁县| 新泰市| 客服| 云南省| 江都市| 浪卡子县| 阿拉尔市| 古田县| 中西区| 清河县| 隆昌县| 天气| 南安市| 米易县| 石渠县| 西安市| 永宁县| 琼结县| 佛山市|