区块链技术近年来在国内迅速发展,并在众多领域开展探索并有很多应用落地。做为一门新型技术,区块链技术在助力企业效率提高的同时,在人力成本、联盟链兼容等方面仍然须要释放更多可能性。git
如何下降区块链的开发成本、使其更高效便捷地应用到产业当中,成为提高企业区块链应用价值的关键所在。而目前在区块链在实际应用开发过程当中仍面临诸多痛点。github
为此,微众银行区块链在多年技术研究和应用实践的基础上,积极分析、总结行业需求,研发了一套区块链应用开发组件WeBankBlockchain-SmartDev,用低代码方式在不影响原有业务的基础上,解决区块链与原有应用之间的链接问题。spring
研发区块链应用开发组件的初衷在于打造低代码开发的组件库,全方位助力开发者高效、敏捷地开发区块链应用。shell
该组件包含了一套开放、轻量的开发组件集,覆盖合约开发、编译、应用开发等环节,开发者可根据本身的状况选择相应开发工具,提高开发效率。windows
其中包括WeBankBlockchain-SmartDev-Contract智能合约库组件、WebankBlockchain-SmartDev-SCGP(SmartContractGradlePlugin) 智能合约编译插件、WebankBlockchain-SmartDev-Scaffold区块链应用开发脚手架组件等。数组
对开发者友好的一键式应用开发脚手架、合约模板等功能,便捷区块链应用开发,让开发过程朝“低代码”模式迈进。springboot
这款应用开发组件从2020年初开始筹划,在 DAPP的开发过程当中也存在过各类各样问题。在解决这些问题的过程当中积累了一些经验,咱们将这些经验成功复用到应用开发组件中,下面咱们一块儿看看应用开发组件的特性及原理。数据结构
其次是合约编译插件。传统的操做方式是上传合约到控制台,跑脚本,再将合约的内容拷贝出来,频繁的编译和调试过程需花费大量的时间。而合约编辑插件只需执行简单的指令,全自动生成放到指定的位置,不用作额外拷贝。app
组件根据当前的环境,选择对应的jar包,把 Solidity文件读取出来并编译,编译会输出三个内容,分别是ABI、BIN、Java合约。其中 ABI是接口,智能合约的接口定义;BIN是合约二进制,它包含国密版的二进制和非国密版的二进制;Java合约包含经过Java的方式去调用智能合约接口。ide
最后是应用开发脚手架,脚手架生成通用的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项目,它包含不少以智能合约为核心的功能。
最后,欢迎你们一块儿共同建设区块链应用开发组件,智能合约库长期征集合约库代码,里面有几十个任务任你们挑选,完成任务还将得到礼品,欢迎参与!
点击阅读原文参与智能合约库活动。
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