【视频】超级账本HyperLedger: Fabric Go SDK的使用

目录

说明

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

这是“网易云课堂IT技术快速入门学院”使用的素材。操作、配置文件和代码讲解视频在网易云课堂《HyperLeger Fabric进阶实战课》第五章中。

相关笔记

视频演示:

文字介绍:

问题汇总:

获取示例代码

示例源代码托管在 github: hyperledger-fabric-sdks-usage

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

fabric sdk 代码位于:fabric-sdk-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)
	}
}

参考

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

HyperLedger

  1. hyperledger fabric 1.3.0 多节点手动部署
  2. 【视频】超级账本HyperLedger: Fabric源码走读(一):项目构建与代码结构
  3. 【视频】超级账本HyperLedger: Fabric Go SDK的使用
  4. 【视频】超级账本HyperLedger: Fabric使用kafka进行区块排序(共识)
  5. 超级账本HyperLedger: Fabric 1.2.0使用时遇到的问题
  6. 超级账本HyperLedger: Fabric的Chaincode开发过程中遇到的问题
  7. 【视频】超级账本HyperLedger: 为Fabric的Peer节点配置CouchDB
  8. 【视频】超级账本HyperLedger: Fabric从1.1.0升级到1.2.0
  9. 【视频】超级账本HyperLedger: Fabric源码走读(零):源代码阅读环境准备
  10. 【视频】超级账本HyperLedger: Fabric的Chaincode(智能合约、链码)开发、使用演示
  11. 超级账本HyperLedger: Fabric Node.js SDK使用时遇到的问题
  12. 超级账本HyperLedger: Fabric Golang SDK使用时遇到的问题
  13. 超级账本HyperLedger: FabricCA的级联使用(InterMediateCA)
  14. 【视频】超级账本HyperLedger: 使用Ansible进行Fabric多节点分布式部署(实战)
  15. 超级账本HyperLedger: Fabric掰开揉碎,一文解惑
  16. 超级账本HyperLedger: Fabric Channel配置的读取转换
  17. 【视频】超级账本HyperLedger: Fabric进阶,在已有的Channel中添加新的组织
  18. 超级账本HyperLedger: 超级账本工作组旗下项目介绍
  19. 超级账本HyperLedger: Fabric Chaincode(智能合约、链码)开发方法
  20. 【视频】超级账本HyperLedger: Fabric-CA的使用演示(两个组织一个Orderer三个Peer)
  21. 超级账本HyperLedger: FabricCA的基本概念与用法讲解
  22. 【视频】超级账本HyperLedger: Fabric的全手动、多服务器部署教程
  23. 超级账本HyperLedger: Explorer安装使用
  24. 【视频】超级账本HyperLedger: Fabric nodejs SDK的使用
  25. 超级账本HyperLedger: Fabric部署过程时遇到的问题汇总
  26. 超级账本HyperLedger: Cello部署和使用
  27. 超级账本HyperLedger: Fabric的基本概念与基础用法

视频教程

  1. kubernetes 1.12 从零开始(七): kubernetes开发资源
  2. kubernetes 1.12 从零开始(六): 从代码编译到自动部署
  3. kubernetes 1.12 从零开始(五): 自己动手部署 kubernetes
  4. kubernetes 1.12 从零开始(四): 必须先讲一下基本概念
  5. kubernetes 1.12 从零开始(三): 用 kubeadm 部署多节点集群
  6. kubernetes 1.12 从零开始(二): 用 minikube 部署开发测试环境
  7. kubernetes 1.12 从零开始(一): 部署环境准备
  8. kubernetes 1.12 从零开始(零): 遇到的问题与解决方法
  9. kubernetes 1.12 从零开始(初): 课程介绍与官方文档汇总
  10. 【视频】新型监控告警工具prometheus(普罗米修斯)入门使用(附视频讲解)
  11. 【视频】超级账本HyperLedger: Fabric Go SDK的使用
  12. 【视频】超级账本HyperLedger: Fabric使用kafka进行区块排序(共识)
  13. 【视频】超级账本HyperLedger: 为Fabric的Peer节点配置CouchDB
  14. 【视频】超级账本HyperLedger: Fabric从1.1.0升级到1.2.0
  15. 【视频】超级账本HyperLedger: 使用Ansible进行Fabric多节点分布式部署(实战)
  16. 【视频】超级账本HyperLedger: Fabric进阶,在已有的Channel中添加新的组织
  17. 【视频】超级账本HyperLedger: Fabric-CA的使用演示(两个组织一个Orderer三个Peer)
  18. 【视频】超级账本HyperLedger: Fabric的全手动、多服务器部署教程
  19. 【视频】超级账本HyperLedger: Fabric nodejs SDK的使用
  20. 超级账本HyperLedger: Fabric部署过程时遇到的问题汇总
  21. 【视频】8元小课之自动化运维工具ansible(二): 文档阅读摘要
  22. 【视频】8元小课之自动化运维工具ansible(一): 使用入门

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球