• 沒有找到結果。

Main.go是一个简单的客户端应用示例程序,主要是为了方便用户熟悉客户端开发的流 程,主要包含以下步骤:

//1.导入相关包:Sdk包中提供了一些API,以便用户的应用程序能够访问链代码。

import ( "fmt"

"github.com/hyperledger/fabric-sdk-go/pkg/client/channel"

"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk" ……

)//2.创建文件配置:这部分封装了应用开发必要的一些公共配置,包括sdk配置文件路径、组织名

var (

configFile = "/root/fabric-go-demo/config/go-sdk-demo-channel-sdk-config.yaml"

org = "9103f17cb6b4f69d75982eb48bececcc51aa3125"

开发指南 4 示例 Demo

……

)//3.加载配置文件

loadConfig() //4. 初始化sdk initializeSdk()

//5. 执行链代码,将数据写入账本,key = "testuser",value= "100"

insert("insert",[][]byte{

[]byte("testuser"), []byte("100"),

})//6.查询链代码,输出查询结果,key = "testuser"

query("query",

getOptsToInitializeSDK 解析配置文件,创建并返回fabsdk.Option对象。

GetDefaultChaincodeId 解析配置文件,返回chaincodeID。

GetDefaultChannel 解析配置文件,返回channelID。

UserIdentityWithOrgAn

dName 用户身份验证,输入为组织名和用户名,返回为验证结

果。

ChannelClient 创建*channel.Client对象,输入为组织名、用户名以及通 道ID,返回*channel.Client对象。

insert 将数据写入账本,输入参数为链码的对应方法名称以及

要插入的键值对,返回为写入的结果。

query 查询链上信息,输入参数为链码的对应方法名称以及要

查询的数据,返回为查询的结果。

4.2 Java SDK Demo

本节提供一个基于Java SDK的Demo,帮助用户开发自己的Java客户端应用程序。

说明

本Demo仅适用于Hyperledger Fabric增强版的区块链服务。

准备工作

1. 开通CloudIDE(或者用户自己准备JDK、maven和eclipse/IntelliJ IDEA)。

CloudIDE是DevCloud的云端开发环境服务,向开发者提供按需配置、快速获取的 工作空间(包含编辑器和运行环境)。

在CloudIDE上创建一个空的Java工程,如图4-1所示。

开发指南 4 示例 Demo

4-1 CloudIDE 上创建一个空的 Java 工程

2. 下载Java SDK示例源码,获取方法:登录区块链服务管理控制台,进入“体验中 心 > 应用案例”,在“Java示例Demo-Java SDK Demo”下方,单击

“App_Java_Src_Demo”中Java项目源码的“下载”按钮。

3. 购买区块链服务、安装链代码及实例化链代码操作,请参见《快速入门》。

部署应用

1. 下载SDK和证书。

a. 在“服务管理”界面,在服务卡片中,单击“获取客户端配置”。

b. 勾选“SDK文件”,SDK配置参数如下:

参数名称 说明

链代码名称 chaincodedemo

证书存放路径 /home/user/javasdkdemo_src/config 通道名称 channel

组织&Peer节 点

选择通道中所有节点组织

勾选“共识节点证书”。

勾选“Peer节点证书”,指定节点组织选择organization,勾选“管理员证 书”。

c. 单击“下载”,下载SDK配置文件、demo-orderer组织的管理员证书和 organization组织的管理员证书。

2. 拷贝并解压。

a. 先下载工程源代码javasdkdemo_src.zip文件并解压。

获取方法:登录区块链服务管理控制台,进入“体验中心 > 应用案例”,在

“Java示例Demo-Java SDK Demo”下方,单击“App_Java_Src_Demo”中 Java项目源码的“下载”按钮。

b. 将1步骤中的zip文件解压,把configs文件夹中的orderer文件夹、peer文件 夹、sdk-config.json、sdk-config.yaml文件全部拷贝到javasdkdemo_src目录

开发指南 4 示例 Demo

下的config目录下。然后再将javasdkdemo_src目录压缩成 javasdkdemo_src.zip包。

3. 部署应用。

a. 将新压缩的javasdkdemo_src工程源代码javasdkdemo_src.zip文件上传到 CloudIDE开发环境中。

CloudIDE编译工程如下所示:

b. 打开工程后等待一会,会自动下载工程依赖的包,然后按下图操作执行 Run,就会得到预期结果。

注意

● javasdkdemo工程中config目录下demo-channel-sdk-config.yaml文 件,必须与javasdkdemo/src/main/java/handler/Main.java文件中 helper.setConfigCtx("config/demo-channel-sdk-config.yaml")代码路 径相同,保证可以正常运行Main.java。

● 客户端app交易的时候,如果指定了未实例化的组织和peer,那么首次交 易会超时失败,请您重新运行即可正常交易。

每成功执行一次,表示向区块链存入一对键值对,<testuser,100>;在区块链 上查询键值为testuser的value值为100。也可以通过区块链浏览器可以查看交 易记录。

开发指南 4 示例 Demo

通过内存传入私钥

如果用户需要对私钥文件进行加密,并在demo中解密后传入FabricSDK。

对于MSP私钥:在FabricHelper文件的genFabricUser函数中,按如下方式调用函数:

//从配置文件指定路径下读取加密过的MSP私钥

String adminPrivateKeyString = extractPemString(msp, "keystore");

//对adminPrivateKeyString 进行解密得到decryptedKey字符串 //将解密后的MSP私钥重新赋值给变量adminPrivateKeyString String adminPrivateKeyString = decryptedKey;

说明

当前不支持通过内存传入TLS私钥。

相關文件