华企号 后端开发 让区块链变得更加简单

让区块链变得更加简单

“ 本月15日,由国家信息中心、中国移动、中国银联共同发起的区块链服务网络(BSN)发布会在北京召开,小编在发布会结束的第一时间,参与了区块链服务网络的内测,这个标题文章分两部分来发主要围绕普通开发人员现阶段如何使用区块链系统及区块链服务网络能够为开发人员带来什么来展开。”

要解释区块链服务网络是什么,首先还是要从现阶段如果普通开发人员想要将区块链加入到自己的系统中来,需要做哪些工作?本篇文章主要讲,没有服务网络的时候, 一名普通的开发人员,要将区块链加入到自己的业务中来,如果自己团队没有懂区块链的人员,基本上有以下两种方式来实现,一、如果自己足够有钱,可以找一家区块链技术服务公司,来让他们帮助实现区块链部分的内容,当然,这里的成本肯定是不低的。二、借助社区区块链开源系统来实现,这部分需要开发人员投入时间来进行学习使用。这里我们以联盟链中目前比较成熟的Hyperledger Fabric来说明一名未接触过区块链的开发人员从开始学习到完成区块链系统的搭建需要经历的事情。

01 区块链测试系统的部署

区块链服务网络 让区块链简单点

熟悉Github项目熟悉开发文档

尝试自己在本地部署一下区块链系统,跑下测试实例,这里才是真正头疼的开始:

a. 直接在本地安装的话,是不是把自己的系统弄得很乱?还是在自己的电脑上搞个虚拟机吧,一通折腾,嗯,虚拟机搞好了。

b. 看安装手册上说要安装下go的开发环境,这里有些网络的问题需要搞一下

c. 系统通过容器来运行,嗯,需要安装Docker,发现,网络问题更加麻烦了,一番折腾,嗯差不多了,不过网上说需要配置下镜像源,要不会很慢,配置下。

d. 终于把前期系统配置的基础问题解决了,接下来终于可以开始尝试安装了,拉下samples代码,下载相关的依赖,docker镜像,当然不熟悉的话,会遇到各种奇葩问题,一切结束之后,激动人心的时刻,小心翼翼的敲下byfn.sh up,紧张的盯着屏幕上一行行闪过的日志,一般情况下,会遇到以下几种坑:镜像版本不对,缺少某必要工具,缺少相关依赖。上天保佑一切顺利。终于看到了下面的画面:

 

测试系统搭建完毕,此刻感觉自己的内心充满了力量:

02 区块链合约开发及SDK的使用

区块链合约开发

测试系统终于搭建完成了,但接下来要做什么,怎么和区块链底层进行交互呢,好像需要编写智能合约啊,等等,合约是个什么东西,需要签字盖章吗?又是一通折腾,终于搞明白了,目前Fabric支持的合约编写语言是go、java、node.js。扫了下官方给出的合约代码,勉强可以写出自己的合约了,调试完毕,部署到区块链上,用命令行的形式,调用了一下,可以了。

SDK的使用

合约是部署完成了,等等,要怎么和我们的应用系统进行对接呢,官方给出sdk了吗?嗯,官方给了,但是看了一眼调用示例,这。。。也太难使用了吧,为了缩减后续的开发量,是不是要做层封装呢,又是一段折腾,终于,终于跑通了。成了,然后兴奋的找到boss,内心os:

 

然而,现实是,区块链在生产环境的部署,和测试环境,还有很大的不同。

03 区块链生产环境部署

一般企业的生产环境,是连不上外网的,docker要不要搞个离线安装包啊,那些区块链系统镜像要不要打包一下,生产环境,为了保证系统的性能,搞一台机子安装,是不是有点跑不起来啊,要考虑分节点部署的吧,等等,区块链系统的搭建一般是几个企业一起来搭的,企业之间还要完成网络的配置,还有,测试环境,可以byfn.sh up一条命令启动,分布式部署的情况下,是不是要为每个节点准备好启动环境啊。。。。

终于一切准备就绪,再次找到boss,老大,成了,现在需要您这边签字同意了,老大一看需要申请资源,服务器资源,虚拟机或服务器需要增加的台数,眉头紧锁(一般要部署生产环境的系统,fabric为例的话,2orderer,2peer,kafka集群4台,整体加起来需要8台服务器,就算是使用raft模式的话也至少需要7台)。这还不算要加的代理服务器、证书服务器等。老板说,投入是不是有点大啊,再说,这个项目只是试试水,还不知道深浅呢,要不咱们缓缓。。。此时的你:

以上内容,基本就是现阶段如果想要应用区块链系统,使用开源环境的时候,开发人员需要投入的事情,以及整个项目需要增加的硬件资源。从这里能够看到想要把区块链用起来,还是需要比较复杂的流程,以及比较大的投入的。但有了区块链服务网络之后,上面的问题能够得到很好的解决,在下篇文章中,敬请期待。

文中所使用的图片均来自于互联网,如有侵权,请联系小编,小编会立即删除

区块链服务网络 让区块链简单点(二)

转自假日区块链微信公众号

“在昨天的文章区块链服务网络 让区块链简单点(1)中,已经介绍了没有区块链服务网络的情况下,想要把区块链系统应用到自己的业务系统中来,需要学习的东西,以及需要准备的资源,这篇文章中我们将重点介绍区块链服务网络能够为我们开发人员带来的便利,以及小编第一手的内测体验。”

整个区块链服务网络是公共城市节点和排序集群服务组成,每个城市节点建立一个或多个公共城市节点,所有节点通过互联网连接起来,形成物理城市节点遍布全国的区块链服务网络。排序节点由中国银联提供,所有城市节点共享。这意味着,区块链系统的搭建,由区块链服务网络为大家提供,因此昨天所说的区块链系统的学习和搭建完全不需要用户来投入额外的成本(只需要用户出资源的使用费用)。服务网络提供了智能网关来方便用户的业务系统和区块链服务网络进行交互,下图比较清晰的展示了区块链服务网络和业务系统进行交互的示意:

 

用户只需要专注业务系统的开发,通过和节点网关来和区块链服务网络进行交互,因此开发者可以将区块链部分完全交由服务网络来完成,这样的话,针对于普通开发者,对于区块链知识的要求基本降到了最低,可以说区块链系统是一个黑箱,开发者只需要会调用相关的接口即可。真正的实现了区块链系统的无感使用。

目前区块链服务网络提供应用服务和应用产品两种发布形式,应用服务是指在区块链网络中部署并运行的区块链应用,应用公开发布之后,会在应用商店中进行展示,使用者可以申请加入应用,应用发布者批准之后,使用者可以使用相应的功能;应用产品指的是发布者只将自己的产品在服务网络中展示,并不实际部署到区块链服务网络中,使用者如需使用该产品,可以与产品发布者取得联系,达成协议后,由购买方在区块链服务网络上发布该应用服务。

在区块链服务网络帮助手册中,可以发现目前的网络支持Hyperledger Fabric系统,在发布会上,相关的人员也强调了,未来会支持更多的区块链架构,而且网络未来也会朝着开源的方向来走。具体的内容,大家可以登录区块链服务网络下载相关资料进行了解。网络目前处于内测阶段,现在可以访问区块链服务网络申请内测名额。下面将实际展示下区块链服务网络内测使用方式。

1. 访问网址,进入到服务网络官网,申请内测,内测阶段支持个人用户和企业用户两种注册方式,按照指引注册完成后,会有后台人员进行审核,审核完毕后,即可登录区块链服务网络,登录进来后如下所示:

 

进来之后可以先查看下文档资料里面的内容,整体熟悉一下区块链服务网络。

2. 参与服务(参与发布者发布的应用)

如首页中推荐的大象合同,我们点击进入,按照相关的指引,进行服务使用申请:

 

这里需要我们选择参与服务的角色,也就是每一个应用服务发布者对外开放的服务,还有需要接入的城市节点,并申请证书(证书是为了申请好后,与智能网关交互调取区块链的底层服务的),完成后,点击提交申请,后台由服务发布者进行审核。可以看到申请服务需要支付一定的资金的,这里由于是内测阶段,因此不收取费用,这里我尝试了几个服务的申请,用户可以在网页侧边栏我参与的服务–>我参与的,查询自己已经申请和正在申请的服务:

 

这里我们查看已经通过的申请,质量溯源链,如下所示:

 

申请通过后,可以看到会给大家下发一个身份证书的压缩文件,以及智能网关的接入地址,通过下发的身份证书及节点网关的地址,可以调用应用服务中对应角色的相关方法,与区块链系统取得交互,此外还有应用服务接入配置参数,给出了可以调用的合约名称及相关方法。通过角色功能权限可以查询到自己所申请的角色能够有哪些权限:

 

申请完成之后即可通过编码同智能网关进行交互,调用相关的方法,服务网络给出了链下业务系统通过网关API调用链码的示例源代码,包括go、java、C#和python四种语言的调用示例,帮助开发者快速入门。

3. 应用发布

应用开发者,开发好自己的智能合约,想要对外发布自己的应用服务,可以通过我发布的应用–>我发布的服务–>创建新服务,

 

首先填写一下服务的基本信息,以及发布者的基本信息,接着将自己服务对应的智能合约打包,上传:

 

接下来定义服务的功能,以及角色,功能权限,方便使用者进行相应角色服务的申请:

 

接下来选择服务要部署的节点:划重点(内部测试阶段,每个用户仅能发布一条应用服务,最多选择三个城市节点部署,因此希望大家在选择的时候尽量慎重)

 

接下来设置自己服务的接入方式,以及费用明细,这里主要是在正式商用的时候需要为服务支付的费用,内测阶段一律为0元:

 

上述内容填写完毕之后,发布应用的请求就会发到后台,进行相应的审核–>测试–>复审–>发布流程,这几个流程由后台帮你完成,等一切流程走完之后,系统会邮件和短信通知你应用发布成功:

 

发布成功之后即可邀请他人,参与你所发布的服务了。

再次提醒,内测阶段,一个用户只能发布一条应用服务,选取3个城市节点部署,发布会上相关负责人表示,内测阶段的数据在网络正式上线之后,是不会清除的,如需继续使用,需要发布者提供使用费用,因此,建议大家在发布自己的应用的时候,可以发布自己切实想要使用的。

4. 链下业务系统通过API调用链码示例的测试,由于小编对go、java比较熟悉,因此测试了这两个示例代码,区块链服务网络开放了泉州的节点供大家测试,上面部署的是一个具备基础增删改查功能的预置链码包,以下为大家展示go测试实例的测试结果:

 

如果在测试的过程中出现connection refused的情况,可以查看下是不是网络防火墙的问题,小编在使用公司网络进行测试的时候,就出现了这个问题,后来还是联系客服,切换到自己的手机热点才解决的。对了这里点赞一下区块链服务网络的技术支持客服,在测试和使用过程中,用户有任何的疑问,都可以通过网站侧边栏 开发者社区–>技术支持,将您遇到的问题及您的联系方式填写提交,很快就会有相关的客服人员和您打电话进行沟通,帮助您解决问题。java代码的测试这里就不展示了。

以上就是区块链服务网络内测申请、参与服务、发布应用服务、链下业务系统通过API调用链码示例的测试的内容,基本上掌握这些,用户就可以将区块链服务网络使用起来了,其他的内容,麻烦大家自己去申请一个账号,去体验吧,小编在这里就不多啰嗦了。

通过该开发实例,用户可以很容易的掌握与区块链服务网络上的应用进行交互的方法,可以将开发人员的精力投入到业务逻辑的设计实现中来,大大的缩减了区块链系统的开发运维成本,而且发布会上相关负责人表示,使用城市节点的资源,也会是一个比较便宜的价格。因此对于想要试水区块链的企业或者个人来说会是一个比较合适的平台。整体来说的话,区块链服务网络的出现,还是比较大程度的降低了区块链技术的使用门槛的。

当然目前网络还处于内测阶段,感兴趣的同学可以去切身的体验下。

作者: 华企网通王鹏程序员

我是程序员王鹏,热爱互联网软件开发和设计,专注于大数据、数据分析、数据库、php、java、python、scala、k8s、docker等知识总结。 我的座右铭:"业精于勤荒于嬉,行成于思毁于随"
上一篇
下一篇

发表回复

联系我们

联系我们

028-84868647

在线咨询: QQ交谈

邮箱: tech@68v8.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部