首页 > 中国比特币 > 如何快速构建区块链应用?这款脚手架支持一键生成
2024
06-29

如何快速构建区块链应用?这款脚手架支持一键生成

私募比特币 在数字化、信息化的今日,区块链技能现已逐渐走入各行各业。为了满意普适性的要求,区块链的运用开发理应愈加简略随手。可是咱们发现现在区块链运用开发依然存在着必定门槛,社区中不断涌现的疑问就是表现之一。

  • 坐山观虎斗装备私钥和证书?
  • 怎样拜访区块链节点?
  • SDK的接口怎样用?
  • 坐山观虎斗构建一笔买卖?
  • 怎样解析买卖回执?……

来自开发者的疑问林林总总,但假如开发者一直在处理这些问题,则会带来很多的时刻开支,影响事务开发的发展。一门老练的技能,应不断将重复的细节封装起来,让开发人员愈加聚集事务,非难事务快速上线、快速试错和快速迭代的功率。微众银行自2015年深耕区块链,在技能攻关和运用开发上积累了丰厚的经历。为了让开发者能够在自己的事务中轻松引进区块链技能,微众银行区块链开发了区块链运用开发组件WeBankBlockchain-SmartDev。其所包括的子组件——区块链运用开发脚手架WebankBlockchain-SmartDev-Scaffold,更是经过一键生成运用项目,协助开发者灵敏、高效地开发区块链运用。运用开发脚手架简介一个典的区块链运用项目后端,能够分为三块。事务逻辑部分由用户自行界说;代码部分包括了智能合约拜访的功用,例如函数入参的封装、买卖的结构和推送、链的拜访等;资源部分则包括了合约、ABI、BIN。如下图所示:如何快速构建区块链应用?这款脚手架支持一键生成 - 第1张  | 比特币-比特币价格-比特币行情交易交流平台运用开发脚手架组件答运用户在写好智能合约的基础上,将智能合约转换为一个SpringBoot项目,这个项目现已涵盖了上图中蓝色和绿色的部分,用户只需求弥补自己的事务逻辑即可,不用再去关怀区块链拜访的细节,大大缩短了开发时刻。要害特性一览一键生成用户在开发完智能合约后,能够将智能合约直接拖入脚手架,只需轻量装备,就能够生成相关项目。并且,生成的项目现已包括了智能合约拜访的必要逻辑。此外,该项目是SpringBoot项目,相关的装备、服务均已归入到spring容器傍边。高度封装脚手架在生成项目时,会对合约调用逻辑做高度的封装,用户能够像运用ORM结构操作数据库相同地操作智能合约。在生成的项目中,每个合约都被独自封装到一个类中,每个函数对应合约的一个函数。其输入是java类的输入,输出也是已解析的输出。此外,关于函数的输入参数,咱们也已生成了相关的模类,便利用户运用。轻量装备用户在将智能合约拖入脚手架后,只需做少量的触及项目称号、组名、合约选择器等内容的装备即可。并且这些装备根据“契约优于装备”的准则设置了默许值,用户可根据自己的实际需求进行调整。合约可选在开发具有必定复杂度的智能合约时,出于易晋级、松耦合的意图,开发者一般会选用必定的手法将合约功用解耦,离散到不同的合约中去。所以,在一组智能合约中,真实供外部拜访的合约只占少量,大都合约都仅作为功用性合约来支撑全体事务。并且,在后续运用开发时,真实需求开发的服务类也占少量。为了让项目聚集在所需求的合约上,开发者可装备合约选择器,即指定所需求处理的合约,继而脚手架只会为这些合约生成相应的代码,避免了冗余代码。坐山观虎斗运用下面给一个简略的比如,以阐明脚手架的运用方法。获取脚手架从gihtub或gitee获取脚手架,以github为例:gitclonehttps://github.com/WeBankBlockchain/SmartDev-Scaffold.gitcdtools

进入tools目录后,能够看到它的结构:|–tools||–contracts||–|HelloWorld.sol||–config.ini||–run.sh

其间:

  • contracts目录用于寄存solidity合约文件,脚手架后续会读取该目录下的合约,以生成相对应的事务工程。可删去该目录下的默许合约,并将自己的事务合约复制到该目录下。
  • config.ini是发动相关装备。
  • run.sh是发动脚本。

装备脚手架合约装备本示例中,运用默许的HelloWorld合约。实际运用过程中,可删去contracts目录下的默许合约,并将自己的事务合约复制到该目录下。项目装备能够在config.ini中做项目装备,如下:###项目称号artifact=demo###组称号group=org.example###所支撑的合约列表,一般为空即可selector=

运转脚手架直接发动脚本:chmod+xrun.shbashrun.sh

运转成功后,会在tools目录下得到一个根据SpringBoot的项目工程,本示例是demo:|–tools||–demo##这是新生成的工程||–contracts

.├──build.gradle├──gradle│└──wrapper│├──gradle-wrapper.jar│└──gradle-wrapper.properties├──settings.gradle└──src├──main│├──contracts││└──HelloWorld.sol│├──java││└──org││└──example││└──demo││├──Application.java││├──config│││├──ContractConfig.java│││├──SdkBeanConfig.java│││└──SystemConfig.java││├──model│││├──CommonResponse.java│││└──bo│││└──HelloWorldSetInputBO.java││├──service│││└──HelloWorldService.java││└──utils││└──IOUtil.java│└──resources│├──abi││└──HelloWorld.abi│├──application.properties│├──bin││├──ecc│││└──HelloWorld.bin││└──sm││└──HelloWorld.bin│└──conf└──test└──java├──org│└──example│└──demo│└──DemoPkey.java└──org.example.demo

其间:

  • config目录包括了Bean装备类。
  • service目录中包括了智能合约拜访类,一个类对应一个合约。
  • bo目录包括了合约函数输入参数的封装POJO类。
  • src/main/resource/conf目录用于寄存证书信息。

运用开发生成项目工程后,能够进行DAPP开发。下面以前文所提及的demo项目工程为例进行阐明。布置合约运用控制台等方法布置HelloWorld合约,可得到它的地址。证书复制将装备文件复制到生成工程的conf目录或src/main/resources/conf目录下。该事务工程会主动在这些途径下搜索证书。装备衔接节点修正application.properties时,填写如下信息:system.peers=127.0.0.1:20200system.groupId=1system.certPath=src/main/resources/conf###前述合约布置地址system.contract.helloWorldAddress=###私钥明文,如为空,会主动生成一个system.hexPrivateKey=server.port=8080

补全事务处理逻辑一个完好的DAPP应包括至少三层架构。本示例补全一个Controller。但需阐明的是,它仅仅是展现买卖的成果。示例如下:@RestController@RequestMapping(“hello”)publicclassHelloController{@AutowiredprivateHelloWorldServiceservice;@GetMapping(“set”)publicStringset(@RequestParam(“n”)Stringn)throwsException{HelloWorldSetInputBOinput=newHelloWorldSetInputBO(n);returnservice.set(input).getTransactionReceipt().getTransactionHash();}@GetMapping(“get”)publicStringget()throwsException{returnservice.get().getValues();}}

编译工程进入目录后,履行编译:cddemogradlebuild-xtest

运转jar包发动项目后,可在浏览器内输入:http://127.0.0.1:8080/hello/set?n=hello

回来示例:0x1c8b283daef12b38632e8a6b8fe4d798e053feb5128d9eaf2be77c324645763b

立刻运用上述相关代码和技能文档已更新,欢迎体会和 star 支撑。如需咨询技能问题,欢迎重视本公众号,对话框回复【小帮手】进技能交流群。文档地址:https://smartdev-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-SmartDev-Scaffold/index.htmlgithub代码库地址:https://github.com/WeBankBlockchain/SmartDev-Scaffoldgitee代码库地址:https://gitee.com/WeBankBlockchain/SmartDev-Scaffold欢迎参加WeBankBlockchain的社区建造:

  • 如项目对您有协助,欢迎点亮咱们的小星星(点击项目左上方Star按钮)。
  • 欢迎提交代码(Pull requests)。
  • 发问和提交BUG。
  • 假如发现代码存在安全漏洞,可经过以下地址https://security.webank.com/上报。
最后编辑:
作者:BITCOIN86
头像
这个作者貌似有点懒,什么都没有留下。

如何快速构建区块链应用?这款脚手架支持一键生成》有 0 条评论

留下一个回复

你的email不会被公开。