开发业务层区块链应用

Hyperledger fabric目前支持java,nodejs,go和python语言的sdk,供用户选择用不同的语言开发上层应用,使用相应的sdk调用部署在区块链上的链码。以下示例中我们选择使用go语言开发业务层应用。

步骤1:配置fabric sdk

Hyperledger fabric官方提供了我们需要的go sdk文件包。目前BCS服务使用的版本commit号是035e4f9。

我们需要为fabric sdk生成相应的配置文件和访问区块链节点的组织证书。SDK配置文件主要包括要访问的链码名称/版本、证书解压的目录位置、实例化链码的通道,安装链码的节点组织/名称。在订购的区块链服务状态中的点击中的“下载SDK配置“会弹出配置窗口,完成sdk配置。

SDK配置文件下载界面

配置SDK文件下载界面

在订购的区块链服务状态列表页面上可以查看每个节点的状态以及相应的证书下载功能,我们需要下载相关的证书到sdk的配置文件所指定目录中,使得业务应用可以和区块链节点正常的进行通讯。显示了orderer节点和peer节点的证书下载链接。

orderer节点和peer节点的证书下载

步骤2:编写业务应用代码

合理配置sdk与区块链节点peer的通信后,业务层应用代码仅需对接链码的invoke和query的方法。以下示例中我们使用sdk提供的接口ChannelClient,即先通过加载sdk配置文件生成一个sdk实例,然后传入通道名称和用户信息生成一个ChannelClient对象,最后使用该ChannelClient发起一笔执行链码的交易。

在业务应用代码中定义好一个链码的数据结构ChainCodeSpec,包括ChannelClient对象、 用户信息和链码名称等,在ChannelClient初始化时给其赋值。将链码的invoke和query方法定义成结构体方法,可以很简单的在发起交易的时候完成数据传递

步骤3:测试业务应用代码

下面我们简单的定义一个main方法来测试一下我们的代码。首先声明之前在链码管理网站实例化的链码信息,即链码名称chaicodetest,实例化的通道名称testchannel,用户使用的是组织内的普通用户。其次,定义两个测试方法创建测试用例和查询测试用例。

创建测试用例create_testcases需要按顺序传入4个参数即项目名称、模块名称、测试用例名称和测试用例描述,调用invoke方法将一次交易写入区块链。查询测试用例query_testcases方法传入项目名称和模块名称,查询测试用例信息。

之后我们使用go run来执行这个测试用例,我们可以看到已经生成testchannel实例并与区块链节点建立连接。为了确认交易是否正常,链码是否正确保存之前用例的复合键值索引,我们登陆区块链节点并用“docker logs <容器id>”命令我们可以看到为每笔交易创建的区块。链码容器也可检查我们之前链码打印的日志来确定是否可以正确查询测试用例。

查看区块链节点peer中的运行结果

链码运行结果

本文通过一个简单的例子介绍如何通过华为云提供的区块链服务快速的开发和搭建起一个应用,用户可以根据所需的场景,基于本文的示例部署区块链服务,开发链码和业务层应用。

点击下方链接即可体验区块链服务 !

http://www.av587.com http://www.qiao1.com

区块链开发指南_区块链软件开发详解相关推荐

  1. 区块链开发指南_区块链开发完全指南

    区块链将是技术的发展方向. 我认为未来将围绕区块链一新兴技术构建,这绝不是什么牵强附会.区块链最初被设计成一种公共的,无权限的技术,后来引入了另一种区块链,每种区块链都有自己独特的用例集.公共/无权限 ...

  2. 区块链开发指南_区块链开发权威指南

    区块链开发指南 by Haseeb Qureshi 由Haseeb Qureshi 区块链开发权威指南 (The authoritative guide to blockchain developme ...

  3. web开发指南_成为专业Web开发人员的实用指南

    web开发指南 This article is meant to serve as a practical guide to becoming a professional web developer ...

  4. 区块链开发指南_区块链钱包开发

    开发钱包之前,我们需要有以下的预备知识. 第一,什么是钱包,以及相关的分类. 本文站在开发者的角度,给读者讲解下怎么样和钱包进行交互,以及如何开发一个钱包. 我们怎么样理解钱包呢?简单讲它是连接区块链 ...

  5. fabric shim安装合约_智能合约简介_智能合约开发_Hyperledger Fabric_开发指南_区块链服务 BaaS - 阿里云...

    概述 在 Hyperledger Fabric 中,链码(Chaincode)又称为智能合约(下文中我们统一称为链码),是用Go,node.js或Java编写的程序,主要用于操作账本上的数据.用户的应 ...

  6. AngularJS开发指南14:AngularJS的服务详解

    服务是一种由服务器端带到客户端的特性,它由来已久.AngularJS应用中的服务是一些用依赖注入捆绑在一起的可替换的对象.服务是最常和依赖注入一起用的,它也是AngularJS中的关键特性. 接下来, ...

  7. 恩施软件开发人员每月多少钱_恩施软件开发学习,恩施软件开发学习哪家好,恩施软件开发学习一般能拿多少工资...

    恩施软件开发学习,恩施软件开发学习哪家好,恩施软件开发学习一般能拿多少工资 首页 > 软件 > 恩施软件开发学习 作者:镀金池   发布时间:2017-11-22 18:54 因为cent ...

  8. 软件开发模型_QT开发(二十三)——软件开发流程

    一.软件开发流程简介 软件开发流程是通过一系列步骤保证软件产品的顺利完成,是软件产品在生命周期内的管理学. 软件开发流程的本质是软件开发流程与具体技术无关,是开发团队必须遵守开的规则. 二.常见软件开 ...

  9. 行业认证标准:AUTOSAR(汽车开放系统架构)开发了用于现代C++软件开发的标准AUTOSAR C++14

    什么是AUTOSAR? AUTOSAR(汽车开放系统架构)是汽车电子.半导体和软件行业的汽车制造商.供应商.服务提供商和公司的全球发展合作伙伴关系.AUTOSAR开发了用于现代C++软件开发的标准AU ...

最新文章

  1. C#实现php的hash_hmac函数
  2. Redis集群:sharding策略
  3. 一键打开vs中的网站
  4. BugKuCTF WEB web基础$_GET
  5. STL源码剖析---deque
  6. linux下的shell中if的-e,-d,-f是什么意思
  7. 如何在虚拟机上安装wsus服务器,如何在Hyper-V虚拟机上安装WSUS服务器技巧
  8. mysql root_mysql root 没有任何权限
  9. 蓝桥杯 ALGO-160 算法训练 P0104
  10. Android 相关翻译
  11. 【路径规划】基于matlab人工蜂群优化粒子群算法求解最短路径规划问题【含Matlab源码 124期】
  12. 【气动学】基于matlab GUI改进的遗传算法和高斯烟羽模型模拟气体扩散【含Matlab源码 1060期】
  13. 全屏滚动插件之 fullpage.js
  14. 将qlv格式的视频转成MP4格式的视频
  15. WPF 如何在静态资源定义字体大小
  16. 计算机制作画报说课稿,运用word图文混排制作海报说课稿
  17. Python开发环境Spyder介绍
  18. 阿里云服务器好吗?阿里云服务器ECS有什么优势
  19. rtmp直播协议介绍
  20. VMware端口组是什么?

热门文章

  1. Uva 10590 Boxes of Chocolates Again
  2. Fiddler-2 Fiddler抓包原理
  3. Python--模块微谈
  4. usaco-pprime-pass
  5. [ios] NSSet,NSMutableSet[zhuan]
  6. 在场景中添加光线——在反光表面添加镜面高光
  7. FFmpeg中AVFrame中width与linesize的关系
  8. Linux FrameBuffer操作(二十七)
  9. EGLSurface 和 OpenGL ES
  10. C++ vector简单demo