区块链技术在经历了十余年的发展后,渐呈“燎原之势”,不断在各行业落地生根。但同时,从技术的角度看,区块链应用开发仍然有着较高的门槛,存在不少痛点,在应用开发各个环节上的用户体验、效率及安全有待提升。
在社区中,我们也经常听到关于区块链应用开发的诸多问题:
如何在solidity代码中将账户地址和字符串互转?
现有的solidity代码是否支持高级语言中常用但相对复杂的数据结构,例如可迭代的mapping?
是否可以提供一套基于明确应用场景的可供复用、参考的智能合约代码?
solidity智能合约如何快速编译为abi和binary文件?
如何在使用gradle构建的区块链应用中快速编译智能合约代码,而不必使用编译脚本?
写完智能合约后,如何编写区块链应用?
是否可以提供一个便于开发的区块链应用代码生成器?
编程小白如何快速上手区块链应用开发?
...
这些问题既有与合约开发相关的,也有与应用开发相关的。基于此类场景问题,结合自身实践经验,微众银行区块链正式开源区块链应用开发组件WeBankBlockchain-SmartDev,期望从区块链应用开发中的各个环节入手,多维度地提高区块链应用的开发效率,帮助开发者成为区块链应用开发的“10倍工程师”。目前,整个组件基于solidity语言开发。近期微众银行区块链还开源了Liquid合约语言,未来我们也会适配Liquid语言。
区块链开发者平台Alchemy推出Gas价格通知工具:区块链开发者平台Alchemy公布新工具Gas Price Notifications,当以太坊的Gas价格处于设定范围内时就会通知用户。团队在声明中称,“开发者可以使用它来提醒其用户发送交易的最佳Gas价格”。通过监测ETH Gas Station数据,一旦Gas价格在指定的范围内,通知就会推送到用户选择的URL。(Cryptonews)[2020/10/19]
什么是应用开发组件?
区块链应用开发组件WeBankBlockchain-SmartDev的研发初衷在于打造低代码开发的组件库,全方位助力开发者高效、敏捷地开发区块链应用。WeBankBlockchain-SmartDev包含了一套开放、轻量的开发组件集,覆盖合约的开发、编译、应用开发等环节,开发者可根据自己的情况选择相应开发工具,提升开发效率。
从合约开发的视角来看,对于常用的功能,不必再重复造轮子,只需按需引用,参考“智能合约库”中的代码,就可以引入相应功能,为合约开发的效率和安全保驾护航。对于非基础性功能,例如业务场景,我们也提供了代码模板供参考复用。
从合约编译的视角来看,对于正在开发中的区块链应用,不必再依赖控制台对合约代码进行编译,只需使用合约gradle编译插件就地编译,便可立即得到abi、bin和java合约。这些编译物直接被输出到Java项目中,省去了拷贝的步骤,提供了如开发原生java程序一样迅捷、丝滑的体验。
声音 | 湖北省委书记:加快推动区块链技术和产业创新发展:11月25日,湖北省委书记蒋超良主持省委理论学习中心组集中学习,浙江大学教授、中国工程院院士陈纯围绕“区块链技术发展现状和趋势”作专题辅导报告。蒋超良强调,大力培育区块链技术创新和应用骨干企业,推进区块链专业公共服务平台建设,促进区块链中小微企业发展和各领域应用。[2019/11/26]
从应用开发的视角来看,从智能合约到项目搭建,包含了大量机械而重复的工作,如创建项目、引入依赖、编写配置代码、访问智能合约、编写相关实体类等。相形之下,通过WeBankBlockchain-SmartDev,开发者可以选用应用开发脚手架。脚手架会根据智能合约自动生成项目工程。工程中已经包含了上述逻辑代码,开发者只需基于该工程继续添加业务逻辑代码,聚焦在自身的业务上即可。
应用开发组件包含哪些子组件?
智能合约库组件
“天下苦solidity久矣”,在solidity智能合约开发过程中,如果没有一套可参考的模板和代码库,不仅影响开发的效率,同时可能因为对智能合约开发的不熟悉而引入安全风险。智能合约库涵盖了从基础类型到上层业务的常见solidity库代码,用户可根据实际需要进行参考、复用。智能合约库的层级结构如下:
声音 | 天津海关副关长:区块链技术在跨境贸易中的金融创新、监管创新得到了落地和验证:据科技日报报道,从2018年以来,在海关总署与天津海关、天津口岸办共同努力下,联合贸易、物流、金融、科技各单位,于2019年4月17日率先实现全球第一个国家、全国第一个城市、全国第一个地方关区,将区块链应用于跨境贸易全流程。天津海关副关长王利兵表示:“不仅区块链技术平台实现了落地运行,而且区块链平台上的金融创新、监管创新都得到了落地和验证。”[2019/11/6]
1、基础类型层:提供了常见的solidity内置类型的复杂操作库函数,涵盖了数学运算,整型转换操作、字符串操作、地址操作合数组操作等。在增强内置基础类型功能的同时,还为智能合约的安全保驾护航。
2、数据结构层:提供了其他高级编程语言中常见、而solidity语言中未提供的基础数据结构,让智能合约开发如虎添翼。
3、通用功能层:作为合约开发的“粘合剂”,现阶段整合了CRUD、Table库,并提供了密码学库,极大地便利了智能合约业务逻辑中的相关操作。
4、上层业务层:提供了积分和存证这两个常见业务场景的智能合约模板。上述智能合约模板代码遵循了高内聚、低耦合、易于升级的设计理念,既可供智能合约初学者学习和参考,也能给经验丰富的智能合约开发者带来启迪和思考。
声音 | 证券日报: 区块链已渗透新能源云、电力交易等领域:证券日报发文称,近年来,区块链技术已经在颇多产业领域实现了渗透。以清洁能源领域为例,产业层面甚至认为,区块链技术已经动摇了传统的能源交易和服务模式。这种去中心化、不可篡改、全周期可追溯的数据库技术,能够为能源产品建立精确可靠的身份信息,从而降低交易中产品和企业的征信成本。
据悉,在电力交易中,当售电公司、发电、用电不是一个主体时,各方很难互相信任。面对如此种种问题,据了解,国家电网公司就正在推进可信区块链技术在新能源云、电力交易等领域深度应用。
能源互联网存在需要大量计算的情景,如能源系统的运行、调度、分析等,通过技术攻关利用区块链的计算能力,可提高能源互联网的计算速度、降低计算成本;
区块链使用共识机制和激励机制,可大规模协调大量主体参与,解决电网优化运行、虚拟电厂等涉及大规模主体协同的问题。[2019/10/30]
智能合约编译插件
在以往的FISCOBCOS开发中,智能合约需要编译,首先要安装控制台,然后在调试阶段,需要把合约导入控制台,编译后再把java文件拷贝出来调试。且只要合约有变更,此流程就需要重新执行。因此,我们提供了智能合约编译插件,用户只需要在项目中调用gradle相关命令,就会自动根据项目中的合约生成abi、bin和java代码,节省了大量宝贵的时间。
报告 | 区块链专家将成为未来新兴热门岗位之一:世界经济论坛近日发布的《2018未来就业报告》显示,新技术的应用和社会经济的发展,将促进新产品和服务的大规模增长,带来新工作机会。企业越来越需要大量新技术专业人员,如人工智能和机器学习专家、机器人工程师和区块链专家。[2018/10/10]
应用开发脚手架
区块链应用的开发流程,除了合约开发外、还包括应用开发。其中,应用开发又包括项目建立、引入依赖、配置代码编写、模型类编写、服务类编写、业务逻辑编写等步骤。这些步骤相对繁琐,影响了开发的效率。因此,我们提供了智能合约脚手架,用于一键式生成区块链应用开发工程,降低了应用开发的难度。用户将自己的合约导入脚手架,即可生成对应的应用开发模板工程,包含对应的POJO类、服务类等,用户可基于此直接开发区块链应用项目。
应用开发组件使用场景
场景1:智能合约开发
在智能合约开发中,从基础的四则运算到上层的业务场景,都可以使用成熟的、可复用的库。
以四则运算为例,需要判断是否存在溢出的风险,此时可以使用数学相关库LibSafeMathForUint256Utils。
以数据结构为例,在solidity中,mapping类型的key不可被迭代,此时若需要使用对key进行迭代的映射,可以使用mapping相关的库LibBytesMap。
以通用功能为例,如果希望引入哈希、验签等密码学功能,则可以使用Crypto库。
以业务场景为例,如果想实现存证功能,可以参考场景模板Evidence,模板中纳入了相关实现,起到抛砖引玉的效果。
场景2:合约修改与调试
在区块链应用开发、调试过程中,通常需要在项目中用到abi、bin、java合约等内容,并基于这些内容进行相应的调试。如果合约出于调整等原因而需要重新编译,此时不必将合约拷入控制台编译,只需运行相应的gradle指令,就可以生成新的编译物。同时,这些编译物直接嵌在了项目中。如下图示例中,对HelloWorld合约编译后,产生的编译物示例:
场景3:区块链应用开发
假如用户已经写好了智能合约,需要基于智能合约,开发一个提供rest接口的web项目。在这种情况下,用户可以将合约拖入脚手架,一键生成项目。下图是生成的样例工程,包含了必要的配置类、DAO相关代码。开发者只需对项目进行必要的配置,并添加相应的controller等代码,就可以轻松实现上述需求。
开源地址
github代码库地址
SmartDev-Contract智能合约库组件
https://github.com/WeBankBlockchain/SmartDev-Contract?
SmartDev-SCGP智能合约编译插件
https://github.com/WeBankBlockchain/SmartDev-SCGP
SmartDev-Scaffold智能合约应用开发脚手架
https://github.com/WeBankBlockchain/SmartDev-Scaffold
gitee代码库地址
SmartDev-Contract智能合约库组件
https://gitee.com/WeBankBlockchain/SmartDev-Contract
SmartDev-SCGP智能合约编译插件
https://gitee.com/WeBankBlockchain/SmartDev-SCGP
SmartDev-Scaffold智能合约应用开发脚手架
https://gitee.com/WeBankBlockchain/SmartDev-Scaffold
文档地址
SmartDev-Contract智能合约库组件
https://smartdev-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-SmartDev-Contract/index.html?
SmartDev-SCGP智能合约编译插件
https://smartdev-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-SmartDev-SCGP/index.html
SmartDev-Scaffold智能合约应用开发脚手架
https://smartdev-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-SmartDev-Scaffold/index.html
欢迎参与WeBankBlockchain的社区建设:
如项目对您有帮助,欢迎点亮我们的小星星(点击项目左上方Star按钮)。
欢迎提交代码(Pullrequests)。
提问和提交BUG。
如果发现代码存在安全漏洞,可通过以下地址上报:
https://security.webank.com/
Acala的定位是一站式的波卡DeFi中心。Acala基于Substrate开发,并计划竞拍插槽来成为波卡平行链,来为波卡生态提供DeFi基础设施.
1900/1/1 0:00:00作者:秦晓峰,来源:Odaily星球日报北京时间3月30日,链游《NBATopShot》开发团队DapperLabs宣布完成3.05亿美元融资,投后估值升至26亿美元.
1900/1/1 0:00:00狂人本着负责,专注,诚恳的态度用心写每一篇分析文章,特点鲜明,不做作,不浮夸!本内容中的信息及数据来源于公开可获得资料,力求准确可靠,但对信息的准确性及完整性不做任何保证,本内容不构成投资建议.
1900/1/1 0:00:00?链集市?·让区块链落地更简单 《区块链行业观察》专栏·第10篇作者丨NinaBambysheva图片丨来源于网络加密货币行业蒸蒸日上,总市场价值接近2万亿美元.
1900/1/1 0:00:00本报北京4月1日讯中国人民银行副行长刘桂平1日在国新办发布会上介绍,推进区域协调发展是加快形成新发展格局的重要基础,也是社会和谐、稳定和经济可持续发展的重要保障.
1900/1/1 0:00:00美国最大的加密交易所Coinbase在2013年只需购买并持有比特币就能赚更多的钱。社交媒体上流传的数据显示,尽管Coinbase在第一季度获得了8亿美元的利润,但如果该公司使用其种子轮募得资金.
1900/1/1 0:00:00