区块链技术近年来在国内迅速倒退,并在泛滥畛域发展摸索并有不少利用落地。作为一门新型技术,区块链技术在助力企业效率晋升的同时,在人力老本、联盟链兼容等方面依然须要开释更多可能性。

如何升高区块链的开发成本、使其更高效便捷地利用到产业当中,成为晋升企业区块链利用价值的关键所在。而目前在区块链在理论利用开发过程中仍面临诸多痛点。

为此,微众银行区块链在多年技术钻研和利用实际的根底上,踊跃剖析、总结行业需要,研发了一套区块链利用开发组件WeBankBlockchain-SmartDev,用低代码形式在不影响原有业务的根底上,解决区块链与原有利用之间的连贯问题。

研发区块链利用开发组件的初衷在于打造低代码开发的组件库,全方位助力开发者高效、敏捷地开发区块链利用。

该组件蕴含了一套凋谢、轻量的开发组件集,笼罩合约开发、编译、利用开发等环节,开发者可依据本人的状况抉择相应开发工具,晋升开发效率。

其中包含WeBankBlockchain-SmartDev-Contract智能合约库组件、WebankBlockchain-SmartDev-SCGP(SmartContractGradlePlugin) 智能合约编译插件、WebankBlockchain-SmartDev-Scaffold区块链利用开发脚手架组件等。

对开发者敌对的一键式利用开发脚手架、合约模板等性能,便捷区块链利用开发,让开发过程朝“低代码”模式迈进。

区块链利用开发组件个性与原理

这款利用开发组件从2020年初开始策划,在 DAPP的开发过程中也存在过各种各样问题。在解决这些问题的过程中积攒了一些教训,咱们将这些教训胜利复用到利用开发组件中,上面咱们一起看看利用开发组件的个性及原理。

  • 首先是智能合约库,它蕴含了根底类型层,构造数据层、通用性能层、下层业务层。
  • 根底类型层:它蕴含数学运算、字符串相干操作、数组操作和地址操作等。
  • 数据结构层:它蕴含一些数据结构,例如可迭代映射、链表等
  • 通用性能层:它蕴含一些crud合约,还有一些密码学操作。
  • 下层业务层:蕴含溯源,存证等业务模板。

其次是合约编译插件。传统的操作形式是上传合约到控制台,跑脚本,再将合约的内容拷贝进去,频繁的编译和调试过程需破费大量的工夫。而合约编辑插件只需执行简略的指令,全自动生成放到指定的地位,不必做额定拷贝。

组件依据以后的环境,抉择对应的jar包,把 Solidity文件读取进去并编译,编译会输入三个内容,别离是ABI、BIN、Java合约。其中 ABI是接口,智能合约的接口定义;BIN是合约二进制,它蕴含国密版的二进制和非国密版的二进制;Java合约蕴含通过Java的形式去调用智能合约接口。

最初是利用开发脚手架,脚手架生成通用的DAPP我的项目构造。

首先,它蕴含合约、ABI和BIN对于合约相干的一些资源文件。

其次就是代码,能够分成两局部:connection,config,utils,这些是用来连贯区块链和FISCO BCOS。

再其次是service和POJO。service对应的是智能合约的调用,POJO是智能合约的函数输出。service的办法对应的是智能合约中的函数,调用service的办法,会主动进行拼装交易、回执解析。

脚手架的原理蕴含如下几点,首先进行一些通用的检测,而后生成模板文件,对智能合约进行编译,解析ABI的每一个合约的每一个函数,读取它的参数,拼装成对应的Java类,最初生成我的项目的构建。

区块链利用开发组件工具实操

实操演示可配合视频回放享受
https://www.qq.com/video/m325...

首先拜访智能合约库地址,它包含下层业务,根底类型、数据结构、通用性能层,能够看到一些库文件,还有一些demo,很不便去调用库里的文件。

其次是合约编译插件的实操。合约编辑插件其实应用起来也是很简略的,首先关上官网文档,对builg.gradle进行依赖等配置,而后执行gradle solc即可,插件会读取到我的项目的hello world合约,默认会从contract来读取合约, 而后生成ABI和Java合约。

最初是利用开发脚手架演示。先将脚手架的代码给拷贝下来。进入tools目录,在contract曾经默认放了合约,而后是config.ini,这里能够定义一些罕用的内容,比方我的项目名、group组、编译编译器的版本、solidity版本等,咱们能够按需改这些内容。在windows和UNIX环境下会提供一个bat文件和shell文件。

咱们来看下生成的我的项目。这是一个springboot我的项目,外面有对应的依赖,包含像Java SDK,springboot等,从生成的代码看,最外围的代码是hello world service,它对应hello world合约,service则对应着合约外面的set和get函数,调用set函数或者get函数,从而调用对应的智能合约。

从resource目录可知,外面蕴含了智能合约的输出和输入。同时也有conf目录,帮忙大家将链的节点上的一些证书拖下来,能够放在conf目录。application、properties是springboot的比拟规范的配置文件。

从test目录可知, test外面会放了一些罕用的性能,比方生成私钥,部署一个合约,开发者能够依据本人的想法,把这些性能放到demo里。这就是脚手架生成的demo我的项目,它蕴含很多以智能合约为外围的性能。

最初,欢送大家一起独特建设区块链利用开发组件,智能合约库长期征集合约库代码,外面有几十个工作任大家筛选,实现工作还将取得礼品,欢送参加!

点击浏览原文参加智能合约库流动。

体验WeBankBlockchain-SmartDev:

SmartDev-Contract 智能合约库组件
https://github.com/WeBankBlockchain/SmartDev-Contract
SmartDev-SCGP 合约编译插件
https://github.com/WeBankBlockchain/SmartDev-SCGP
SmartDev-Scaffold 利用开发脚手架
https://github.com/WeBankBlockchain/SmartDev-Scaffold

《超话区块链》介绍
《超话区块链》是由FISCO BCOS 开源社区推出的直播流动,每周四晚8点,社区邀请一位技术极客或利用先锋,做客直播间分享开发实际或利用心得。作为社区固定栏目,《超话区块链》已举办近百场,从技术研究到产业利用均有触达,欢送大家自荐或举荐敌人到直播间分享。公众号对话框回复小助手入群观看直播。

FISCO BCOS的代码齐全开源且收费
下载地址↓↓↓
https://github.com/FISCO-BCOS/FISCO-BCOS