在BSN上创建基于FISCO BCOS应用的方法

来源:爱站网时间:2020-10-15编辑:网友分享
今天爱站小编就将为大家介绍在BSN上创建基于FISCO BCOS应用的方法,是不是有很多用户们对于这个问题都是懵懂的呢?那么下面我们就一起去学习学习吧。

  今天爱站小编就将为大家介绍在BSN上创建基于FISCO BCOS应用的方法,是不是有很多用户们对于这个问题都是懵懂的呢?那么下面我们就一起去学习学习吧。

  4月25号,由国家信息中心进行顶层设计的区块链服务网络BSN正式启动全球商用,FISCO BCOS同期完成BSN适配工作,成为目前BSN中首个完成适配集成的国产联盟链底层框架。

  目前,开发者可在BSN上使用FISCO BCOS区块链平台开发与部署应用,此外,FISCO BCOS也针对BSN适配需求进行了一系列特性和功能优化。

  为方便开发者熟悉BSN上应用开发的流程,FISCOBCOS开源社区举办的《沙场练兵|写出高水准智能合约》线上直播Meetup上,社区核心开发者刘明臻现场进行实例演示,手把手分享如何在BSN上创建基于FISCO BCOS的应用。

  我们整理了直播的精彩内容与提问,供大家交流学习,演讲PPT也全文提供给大家对照进行开发演练。

  在BSN上创建新应用流程

  开发前需要在BSN上创建一个新应用,创建的具体步骤如下。

  第1步 :注册BSN账号并登录

  BSN门户地址:https://www.bsnbase.com/

  第2步 :创建新服务

  路径如下:我发布的应用>我发布的服务>创建新服务。需按提示填写相关信息,如服务名称、服务类型、版本号等,在选择平台类型时需注意应选择fisco-2.4.0s-sm2。

  第3步 :选择链码

  创建区块链应用时,需上传提前备好的智能合约;这里,我们上传一个ok合约,用于接下来的实例演示。

  第4步 :选择城市节点

  城市节点即区块链节点,在BSN发布应用时,需选择应用运行在哪些城市节点。选择城市节点后,BSN会专门为该应用创建一个群组,后续该应用的智能合约和交易都会运行在群组里,各应用之间通过群组隔开。

  选择城市节点时,需要先点击检索后才会出现下图所示列表。公测期最多可选择三个城市节点。

  第5步 :提交审核

  创建新应用请求提交之后将发送给BSN进行人工审核。如审核通过,BSN会部署智能合约,并在部署成功后通知开发者。

  在BSN上开发实例演示

  BSN是面向开发者提供基于区块链运行环境的基础设施网络,以互联网理念为客户提供公共区块链资源环境,帮助客户快速、低成本地开发、部署、运营和维护区块链应用(DApp)。

  完整的区块链应用一般包含两部分:链上智能合约(应用服务链码DApp Service Chaincode)和链下业务系统(off-BSN system)。

  链下业务系统通过服务网络公共城市节点(Public City Nodes 或 PCN)网关(gateway)调用在城市节点上部署的应用服务链码进行链上交易处理、数据写链和数据查询等操作。

  服务发布者(Publisher)和参与方(Participant)可使用自己选择的 IDC 资源或云服务平台部署自己的链下业务系统,并通过互联网连接到城市节点网关访问应用服务链码。

  · 合约链码简介

  前面提到,在上传链码包时需要将提前备好的智能合约代码上传。在此我们上传的是一个简单的ok合约做实例演示。

  合约部署、发布成功后将进入下一阶段:编写应用逻辑代码来调用智能合约(完成整个区块链应用的链下开发)。

  接下来我们将演示在BSN上建立一个区块链应用的整体流程,包括配置替换、编写调用代码、调用合约等。

  · 开发前准备

  查阅资料

  · BSN门户上查看开发者手册、开发实例,这是学习使用BSN开发区块链应用的重要途径。

  · 下载FISCO BCOS开发示例及预置智能合约包

  资料获取路径:

  BSN开发者手册>下载《FISCO BCOS开发示例》

  BSN门户开发实例 >下载《FISCO BCOS预置智能合约包》

  配置替换

  下载《FISCO BCOS开发示例》并导入到IDE里,需要先进行配置替换后才能连上BSN网关发送交易。

  需要替换的配置有三个:证书、网关地址、用户信息。

  · 替换证书。因为通讯采用ssl加密方式,所以需要替换资源文件中的证书文件,如下图所示,找到所有证书进行替换,需要注意以下特殊替换规则:

  gateway_public_cert gayeway_public_cert_(secp/sm2)(这里选sm2)

  bsngate_https bsn_gateway_https

  · 替换网关地址。如下图所示找到网关地址,填写ip和端口。

  · 替换用户信息和合约名称。调用应用时首先要有对应的用户信息,因此需要填写userCode和appCode;合约名称可以从「我参与的服务信息」里查看。

  配置替换到这里就全部完成。

  · 编写调用代码

  首先,在应用服务接入配置参数中查看需要调用的链码名称和合约地址,这里用到智能合约函数主要有get函数和trans函数。

  其次,在com.reddate.contract.controller.WorkController添加okTrans接口。

  添加代码如下图:

  此处说明下ok合约里trans函数调用方式:

  · 构造一个访问合约的参数和被访问合约的函数名;

  · 把参数、函数名及userId封装成合约请求包发往网关;

  · 网关把信息转发给Front docker;

  · Front docker组成一个区块链交易包并签名,再把签名交易发送给真正的节点;

  · 节点共识,返回执行结果;

  · 解析执行结果获得:交易哈希、block哈希以及合约的返回值。

  okGet接口调用流程和上述trans函数调用流程一致,区别在于设置的参数不同。如需调用其他接口,可以构造对应参数列表、不同的函数名,选择不同用户(角色)来调用即可。

  · 调用演示

  下面演示合约调用,测试调用代码是否正确、网关是否联通等。

  启动服务

  启动FISCO BCOS预置智能合约包,它是一个web服务,可通过8100端口访问,我们构造http请求,使用postman进行调用。

  查看服务是否正常

  发送getBlockHeight请求块高,通过查看块高来确定服务是否正常。将请求发到链上后,会返回一个结果说明块高;如果能正常收到返回,证明该服务已启动成功,并已连接上BSN网关,群组和节点也正常。

  注册user

  BSN中FISCO BCOS目前采用私钥托管模式。发交易时,首先需要调用registUser接口创建用户,用户创建实际就是在BSN中为用户生成一个私钥并进行托管的过程,后续该用户发交易时,就可以使用托管私钥来签名交易。

  调用交易接口okTrans

  我们传入已创建的userId和数目8888,按照下图所示发至网关,正常情况会收到交易回执。如需查询交易是否生效,可调用okGet接口查询合约交易是否执行成功。

  调用查询接口okGet

  调用okGet接口,传入userId后正常会返回一个处理成功回执,并将函数返回值返回在queryInfo。本示例中返回值为8988,而非之前创建时的8888,是因为已经调用过一次接口,数值发生了变化。

  以上就是小编跟大家分享的在BSN上创建基于FISCO BCOS应用的方法,里面包含修改配置、连接BSN网关等技巧,更多精彩内容就在爱站技术频道。

上一篇:在区块链上实现去中心化数据仓库共享

下一篇:轻松通ArcBlock的招聘流程的技巧

您可能感兴趣的文章

相关阅读

查看更多 >