暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于甲骨文区块链云服务的微信小程序探索——企业积分兑换平台

893

最近最火爆的科技概念莫过于“区块链”, 仿佛一夜之间,知名不知名、高调不高调的投资人,都开始抢食区块链。那么到底什么是区块链?曾经有人说过“区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人们的生产力,电力解决了人们基本的生活需求,互联网彻底改变了信息传递的方式,那么区块链作为构造信任的新技术,将可能彻底改变整个人类社会价值传递的方式。

现在是人人都在说区块链技术,区块链应用,区块链场景,区块链的未来,但真正近距离接触过区块链技术,使用过区块链应用的人很少,下面就让我带领大家“脱虚向实”,深度体验一下甲骨文区块链技术开发的魅力!

1
区块链发展阶段

新事物往往不是凭空产生的,其发展过程也并非一蹴而就。时下如火如荼的区块链技术,自 2009 年到今天已经历了三个阶段的发展。

  • 第一个阶段,或称区块链1.0,以比特币为代表的数字货币领域创新,如货币转移、兑付和支付系统等。

  • 第二个阶段,或称区块链2.0,以智能合约为代表的企业级应用领域,此时更多的是做一些合约方面的创新,是涉及交易方面的商业合同,比如股票、证券的登记、期货、贷款、清算结算等。

  • 第三个阶段,或称区块链3.0,区块链进入社会治理领域,包括了身份认证、公证、仲裁、审计、物流、医疗、签证、投票等领域,应用范围扩大到了整个社会,区块链技术有可能成为“万物互联”的一种最底层的协议。

目前大部分人认为区块链可以分为三类:公有链、联盟链、私有链。 

3.0 时期,诞生了几个具有代表性的平台。公有链的代表是以太坊,私有链则以 R3 Corda 声名最盛,联盟链的代表作品是 Hyperledger 名下的 Fabric。

今天我们就从区块链3.0,企业之间应用最广的联盟链开始,近距离接触区块链技术,真实感受一下区块链应用。企业级IT解决方案最终的目的是,首先通过IT技术来帮助企业解决现有的业务逻辑,提高业务运行效率,其次是通过IT技术来助力创新业务,提供企业的竞争力,创造更多的财富。

2
Demo背景介绍

为了方便大家近距离接触区块链应用,我们这个积分兑换Demo客户端采用微信小程序进行开发的。直接扫描文章底部的小程序二维码就可以体验区块链积分兑换应用了。积分兑换Demo的服务器端是采用基于Hyperledger Fabric甲骨文的区块链云服务实现的。

众所周知,积分作为企业增加用户忠诚度以及活跃度的营销手段,已经被广泛使用。目前国内绝大多数的企业都发行了自己的积分。然而消费者面临的现状是,手上的积分种类太多,管理困难,而且价值量不高,想用而用不了,积分逐渐演变成“鸡肋”。忠诚度积分制度在国内目前发展的都不是非常理想。深究其因,主要有三点:

1.中心化的业务模式,阻碍了生态系统的构建:无论那种积分模式,其核心目标都是吸引大量客户参与进来,构建积分生态系统。只有这样才能确保积分消费场景的质量以及积分流通的效率。而传统的模式都是中心化的业务模式,天然缺失公信力,导致积分生态系统的构建非常缓慢。

2.中心化的技术架构,限制了生态系统的发展:在传统的中心化技术架构下,运营平台异常复杂。要实现大量的商家之间“积分实时清算”,相当于是开通了“银联”的跨银行间资金清算功能。

3.中心化的交易模式,降低了积分的流通效率:传统的中心化交易模式,积分主要是在用户和商家之间流通,很难实现不同商家之间流通,这就导致积分的流通效率大大受限。

针对上述问题,可以充分利用区块链技术去中心化、数据不可篡改和数据可以实时同步的特点对接各个平台的积分增值业务体系,打造基于区块链的积分系统。

上图基于区块链的积分平台可以极大简化积分业务流程,让增值业务体系的价值固化,提升用户体验;实现跨组织积分数据有据可查和追溯,在给用户带来全新体验、用户活跃度与黏性更强的同时,也可以为企业提供成熟的会员积分增值系统,安全加密技术和丰富的增值业务解决方案。

3
业务场景描述

目前中国各大银行、航空公司、酒店品牌多半都有自家的会员积分回馈制度,但多半相当封闭,无法透过本行的积分兑换其他企业积分活动的产品或服务,我们可以通过利用区块链机制来解决跨行积分交换的清算问题。

基于以上场景我们在甲骨文区块链云服务BCS上面实现一个采用区块链技术积分系统的Demo,积分系统Demo通过甲骨文区块链云服务平台实现(航空公司,银行,酒店连锁)统一积分联盟,初步设定业务场景如下:

  • 用户通过唯一身份统一关联商家的积分系统

  • 航空公司、银行、酒店连锁之间积分自由兑换

  • 积分消费历史查询(可以查询所有积分消费历史记录)

在本场景中,我们将创建一个积分联盟,该联盟包括一个组织商(银行)和两个加盟商(航空公司,酒店连锁),形成异业联盟,所有加盟商基于区块链技术共同发放一种积分,自由兑换,实现基于区块链的开放积分生态。

4
系统架构

通过甲骨文区块链实现积分系统的具体架构见下图:

图中整个积分系统基于甲骨文区块链云服务提供的服务来实现,提供了“最全面的、企业级的区块链服务平台”,是一个安全、可扩展、集成的、统一监控的交易平台,目的是为了让那些对区块链技术有兴趣的公司能够从开源项目中获取基本功能,然后添加安全性、机密权限和API接口,并在此基础上快速高效构建新的区块链应用程序,提供全方位交易监控和交易处理服务。

5
实现步骤

区块链积分系统实现具体步骤:

1.创建区块网络

如下图所示:首先创建三方共同参与的区块链网络,甲骨文区块链云服务提供的配置页面简单易用,仅需配置几个参数如:区块链组织名称、共识算法类型、节点数、控制台端口,链码服务代理端口等即可完成区块链服务网络的创建和部署。对于联盟组织商,选择“创建块链网络”单选按钮。然后配置如下图:

对于联盟参与者加选择“创建块链组织”单选按钮,创建好的组织列表如下:

甲骨文区块链云服务提供联盟链的管理方式,每个联盟成员独立管理自己的节点和账本;点击不同的参与者组织,可以进入各个加盟商的独立区块链管理界面,每个组织管理员可以进入管理控制台进行各自区块链系统的部署,管理,运维等工作,实时查看区块链服务里节点的类型、数量和状态,方便管理员实时了解每个区块链服务的状况。

2.配置共识服务信息

在甲骨文区块链云服务的分布式节点环境下,共识服务要实现同一链上不同节点区块的一致性,同时要确保区块里的交易有效和有序,排序服务可以采用集中式共识服务,也可以采用分布式共识服务。甲骨文区块链云服务提供多种高效共识算法,用户可以根据不同的使用场景及安全和性能等不同需求选择合适的公司算法,目前发布的版本支持集中式SOLO和分布式Kafka集群共识算法,提供交易排序功能。

  • SOLO模式:只需要一个共识节点,简单、快速,建议在开发测试环节使用。

  • 基于Kafka/Zookeeper高速共识算法:总节点数没有特定要求,能容忍半数一下节点发生故障。

配置共识服务信息,首先在联盟组织商(银行)中导出共识节点信息。

在每个联盟参与者组织的控制台中,选择“网络”选项卡,导入组织者共识节点信息。

3.组织成员管理

甲骨文区块链云服务是一个“许可”的网络,需要利用MSP(Membership Service Provider)对成员管理进行抽象,每个MSP都会建立一套根信任证书体系,利用PKI(Public Key Infrastructure)对成员身份进行认证,验证用户提交请求的签名。联盟组织者需要参与者的证书信息用来验证户身份,交易签名和TLS传输。

 在每个参与者管理控制台点击"导出证书"。

在组织者管理控制台导入成员的证书信息。

在区块链网络中各成员组织是已知的,通过上述操作建立了组织成员信任关系,只有该区块链网络的成员能够操作分布式账本。

建好后的网络节点拓扑结构见下图,该区块链网络由3个成员组成,一个组织者(银行)和两个参与者(航空公司和连锁酒店)。在甲骨文区块链云服务中节点是区块链中通讯主体,有多个类型节点Peer节点、排序服务节点、CA节点。图中每个组织参与者有两个Peer节点,所有的Peer节点都是记账节点,负责验证从排序服务节点区块里的交易,同时部分节点会执行交易并对结果进行签名背书。区块链网络的组织者有两个Peer节点,一个排序服务节点(Orderer)和一个CA认证授权节点。

4.创建通道

在甲骨文区块链云服务中,通道是两个或多个特定网络成员之间的通信的私有“子网”,用于进行需要数据保密的交易。网络上的每个Transaction都在一个Channel上执行,每个通信方必须经过身份验证并授权在该Channel上进行交易。加入Channel的每个Peer都具有由成员服务提供商(MSP)给出的自己的身份。

由于积分系统的交易是对所有成员公开的,我们只需要建立一个通道。从创建者控制界面选择 “通道” 选项卡,然后点击“创建通道”. 配置通道名称,成员操作权限,以及加入通道的Peer节点信息。

目前为止,新创建的通道只包含组织商(A银行)的对等节点。其他加盟商还不能在这些通道上创建事务,也不能查看这些通道上的事务,因为它们还没有节点加入通道中。为了加入创建的通道,请访问参与者组织的控制台。从那里导航到“节点”选项卡,单击要添加到通道的对等点的名称并加入通道。

5.联盟组织方导入参与者对等节点信息

为了让组织者知道其他加盟商的对等节点信息,我们必须先导出节点信息,并将其导入组织商节点信息。在加盟商管理控制台中,导航到“节点”选项卡,然后单击“导出/导入”按钮导出节点信息。选择加盟商的两个对等点,然后单击“导出”并保存结果文件。

在节点信息被导出后,在组织商控制台中,导航到“节点”选项卡,点击“导出/导入”按钮,导入节点信息。

在完成上述操作步骤后,其他加盟组织的对等节点的信息会出现在节点列表中,节点与MSP ID列中的组织关联,MSP(会员服务提供商,负责跟踪参与网络的组织)。

6.浏览通道网络拓扑

到目前为止,我们已经建立好一个积分联盟完整的区块链网络,可以从区块链联盟组织者控制台导航到“节点”选项卡,点击“浏览拓扑”,见下图网络拓扑所示,联盟组织者(A银行)以及两个加盟商(B航空公司,C酒店联盟)的所有对等节点都加入到了一个通道中。

7.安装链码

甲骨文区块链云服务实现“可编程的账本”,通过链码执行提交的交易,实现基于区块链的智能合约业务逻辑。我们可以把开发好的积分联盟系统Chain Code部署到BCS上面,部署链码可以从组织商(银行)控制台导航到“链码”选项卡,点击“安装链码”如下图:

在组织者管理控制台安装完Chain Code后,需要实例化链码,点击“实例化链码”,配置通道信息,选择Peer节点,以及配置背书策略

最后还需要在各个加盟商独立的管理控制台,安装链码。由于甲骨文区块链云服务对链码实例化针对特定通道实例化,不是针对组织或对等节点的,一旦链码在组织方被安装,不需要再实例化。

8.配置网关

甲骨文区块链云服务提供了方便快捷的Rest Proxy网关服务,方便客户端对智能合约的操作和访问,在安全方面,网关服务通过甲骨文IDCS安全云服务提供身份认证和授权;要通过Rest Proxy开放智能合约的访问,需要在参与者各方导航到“节点”选项卡并定位网关节点(gateway0.dauto.com或类似)。使用上下文菜单单击“编辑”。配置每个通道,链码和Peer节点,然后点击“提交”。甲骨文区块链云服务为每个区块链网络组织提供了独立的网关服务,你需要为每个联盟组织重复这些步骤。

测试链码:

通过甲骨文区块链云服务可以快速开测试和部署区块链业务应用和智能合约代码,降低用户开发成本,提高用户开发效率;我们可以通REST工具来直接调用甲骨文区块链云服务网关并测试链码实现逻辑验证Chain Code的业务逻辑,具体的请求调用格式如下:

POST http://url:port/bcsgw/rest/v1/transaction/invocation

Headers:

Content-Type:application/json

Body:

{

"channel":"<channel_name>",   通道名称

"chaincode":"<chaincode_name>",// 链码名称

"method":"<function_name>",//链码的方法名

"args":[<argumentsas an array>], 链码的参数信息

"chaincodeVer":"<chaincode_version>"//链码版本信息

}

 

9.积分系统Demo展示效果

小程序安装:我们基于甲骨文区块链云服务BCS做了一个区块链积分系统Demo,感兴趣的可以下载感受一下,该Demo前端展示采用微信小程序,在微信小程序搜索“BlockChain积分兑换”,并安装。

会员中心:当前用户会员中心,通过点击当前用户所属会员的链接,可以进入会员积分的兑换界面

积分查询:通过后台区块链的分布式账簿,查询当前用户在各个加盟商(航空公司,银行)的剩余积分。

积分兑换:用户可以通过自己在银行的积分来自由兑换酒店或航空公司的积分。

明细查询:由于所有的积分兑换交易信息都存储在区块中,可以方便的查询该用户所有积分兑换的明细记录。

区块链数据信息:通过甲骨文区块链云服务提供的开放的SDK,可以方便的利用API来查询BCS云平台上的信息如(节点数、健康状况,区块数,调用次数等信息)。

怎么样?对区块链的应用有没有更深的理解?想不想近距离感受一下这个区块链积分兑换的Demo?请识别下面的小程序码:

或扫描以下二维码,直接近距离感受一个区块链应用。



作者简介

贺杨,甲骨文云平台PaaS资深咨询顾问,Oracle云及AWS云认证架构师,专注 于甲骨文PaaS云平台相关产品及架构解决方案。具有15+年的中间件技术,云平台产品,方案、架构及项目实施经验。熟悉制造业,烟草及大政府行业。您可以通过yang.he@oracle.com与他联系。
刘先锋,甲骨文云平台PaaS高级咨询顾问,专注于甲骨文PaaS相关产品及解决方案,关注区块链技术,企业移动化,消息流处理以及微服务方面的产品解决方案,具有15+年的IT行业从业经验,擅长J2EE产品架构及开发。熟悉电信,电商行业。您可以通过xianfeng.liu@oracle.com与他联系。


了解更多,敬请关注甲骨文开发者社区......


文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论