在数字化、信息化的今天,区块链技术已经逐步走入各行各业。为了满足普适性的要求,区块链的应用开发理应更加简单顺手。但是我们发现目前区块链应用开发仍然存在着一定门槛,社区中不断涌现的疑问便是体现之一。
如何配置私钥和证书?
怎么访问区块链节点?
SDK的接口怎么用?
如何构建一笔交易?
怎么解析交易回执?
……
来自开发者的疑问各式各样,但如果开发者一直在处理这些问题,则会带来大量的时间开销,影响业务开发的进展。一门成熟的技术,应不断将重复的细节封装起来,让开发人员更加聚焦业务,提升业务快速上线、快速试错和快速迭代的效率。
微众银行自2015年深耕区块链,在技术攻关和应用开发上积攒了丰富的经验。为了让开发者能够在自己的业务中轻松引入区块链技术,微众银行区块链开发了区块链应用开发组件WeBankBlockchain-SmartDev。其所包含的子组件——区块链应用开发脚手架WebankBlockchain-SmartDev-Scaffold,更是通过一键生成应用项目,帮助开发者敏捷、高效地开发区块链应用。
??应用开发脚手架简介
一个典型的区块链应用项目后端,可以分为三块。业务逻辑部分由用户自行定义;代码部分包含了智能合约访问的功能,例如函数入参的封装、交易的构造和推送、链的访问等;资源部分则包含了合约、ABI、BIN。如下图所示:
法律专家:Mango Markets案例会影响DAO未来如何实施其法律和治理结构:2月4日消息,加拿大律师事务所McMillan LLP的合伙人Benjamin Bathgate表示,针对所谓的Mango Markets漏洞利用者Avraham Eisenberg的诉讼可能会影响DAO未来如何实施其法律和治理结构。Bathgate表示,在很多情况下,DAO只是用户的集合,这是一个用户社区,也许有一个核心贡献者负责编码。管理Mango Market DAO的怀俄明州有限责任公司Mango Labs正在寻求收回剩余的4700万美元。然而,Bathgate表示,Mango Labs的诉讼不太可能成功,到那时可能会为DAO生态系统敲响警钟。
此前报道,Mango Markets攻击者Avraham Eisenberg在纽约美国地方法院第一次听证会上放弃保释。目前,Avraham正被Mango Labs起诉,要求赔偿剩余的4700万美元,他被指控犯有商品欺诈、商品操纵和电汇欺诈三项刑事罪。[2023/2/4 11:46:50]
应用开发脚手架组件允许用户在写好智能合约的基础上,将智能合约转换为一个SpringBoot项目,这个项目已经涵盖了上图中蓝色和绿色的部分,用户只需要补充自己的业务逻辑即可,不必再去关心区块链访问的细节,大大缩短了开发时间。
??关键特性一览
一键生成
用户在开发完智能合约后,可以将智能合约直接拖入脚手架,只要轻量配置,就可以生成相关项目。并且,生成的项目已经包含了智能合约访问的必要逻辑。此外,该项目是SpringBoot项目,相关的配置、服务均已纳入到spring容器当中。
杜均:推动NFT走向主流的关键在于如何解决其资产属性问题:5月18日晚,火币联合创始人杜均做客由新浪财经和微博直播联合主办的《超话1?X》连麦专场线上直播,与美国投研机构首席增长官另维、硅谷独立投资人王川和火星财经创始人王峰共同解读“海外大火的NFT投资机会”。
杜均在直播中表示,现实世界对于NFT的市场需求是切实存在、可供挖掘的,NFT面临的将会是一片广阔的蓝海市场,而推动NFT走向主流的关键在于如何解决其资产属性问题。
杜均以游戏领域为例,指出“道具所有权的归属、道具滥发、游戏生命周期短、利益分配不均等游戏产业的问题存在许久,而大部分的游戏装备、角色都是独一无二且能自由流通的,非常适合采用NFT进行表征。”杜均表示,随着链上可扩展性的提升和加密游戏的发展,NFT极有可能融入到未来游戏的经济模型中,形成开放透明信任的游戏生态。
最后杜均提醒到,当前NFT市场上的流动性多数的确来源于投机效应,项目的真实价值是难以量化的,用户需谨慎投资。[2021/5/18 22:16:28]
高度封装
脚手架在生成项目时,会对合约调用逻辑做高度的封装,用户可以像使用ORM框架操作数据库一样地操作智能合约。
在生成的项目中,每个合约都被单独封装到一个类中,每个函数对应合约的一个函数。其输入是java类型的输入,输出也是已解析的输出。此外,对于函数的输入参数,我们也已生成了相关的模型类,方便用户使用。
轻量配置
用户在将智能合约拖入脚手架后,只需做少量的涉及项目名称、组名、合约选择器等内容的配置即可。而且这些配置依据“契约优于配置”的原则设置了默认值,用户可根据自己的实际需要进行调整。
大咖零距离 | 如何使用火箭战法2天盈利20倍:3月19日18:00,金色盘面邀请实盘大V庄见愁做客金色财经《大咖零距离》直播间,将分享《如何使用火箭战法2天盈利20倍》,敬请关注,欲进群观看直播扫描海报二维码报名即可![2020/3/19]
合约可选
在开发具有一定复杂度的智能合约时,出于易升级、松耦合的目的,开发者通常会采用一定的手段将合约功能解耦,拆散到不同的合约中去。所以,在一组智能合约中,真正供外部访问的合约只占少数,多数合约都仅作为功能性合约来支撑整体业务。
而且,在后续应用开发时,真正需要开发的服务类也占少数。为了让项目聚焦在所需要的合约上,开发者可配置合约选择器,即指定所需要处理的合约,继而脚手架只会为这些合约生成相应的代码,避免了冗余代码。
??如何使用
下面给一个简单的例子,以说明脚手架的使用方法。
获取脚手架
从gihtub或gitee获取脚手架,以github为例:
git?clone?https://github.com/WeBankBlockchain/SmartDev-Scaffold.gitcd?tools
进入tools目录后,可以看到它的结构:
|--tools?|??|--contracts?|??|--|HelloWorld.sol?|??|--config.ini|??|--run.sh
声音 | 日本金融厅长官:针对区块链等分布式金融系统,如何确保公众利益已成为新课题:据日经新闻消息,今日在日本福冈举行的G20峰会上,日本金融厅长官远藤俊英发表演讲指出“监管规则可能抑制创新,监管规则也会跟不上技术变革”。此外,以区块链技术为首的分布式金融系统在没有金融机构充当中介的情况下,可能实现顾客和市场参与者之间的直接交易,因此金融机构的地位存在下降的可能性,在这种情况下,如何确保公众利益已成为新的课题。[2019/6/8]
其中:
contracts目录用于存放solidity合约文件,脚手架后续会读取该目录下的合约,以生成相对应的业务工程。可删除该目录下的默认合约,并将自己的业务合约拷贝到该目录下。
config.ini是启动相关配置。
run.sh是启动脚本。
配置脚手架
合约配置
本示例中,使用默认的HelloWorld合约。实际使用过程中,可删除contracts目录下的默认合约,并将自己的业务合约拷贝到该目录下。
项目配置
可以在config.ini中做项目配置,如下:
###?项目名称artifact=demo###?组名称group=org.example###?所支持的合约列表,通常为空即可selector=
运行脚手架
直接启动脚本:
chmod?x?run.sh?bash?run.sh
声音 | 罗玫:金融机构非常重视如何对加密货币进行计量:据数字金融资产研究中心微信公众号消息,清华经管数字金融资产研究中心主任罗玫称如何对加密数字货币进行计量是国际国内证券监管机构、税务和会计准则制定机构都非常重视的领域,国际会计准则和美国GAAP都没有对加密数字货币的会计计量和确认制定单独准则。建立新的财务报告规范需要会计准则制定委员会的参与,也需要和正在经历变化的加密数字货币的证券规范、以及税务规范同时融合更新。[2018/11/27]
运行成功后,会在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。但需说明的是,它仅仅是展示交易的结果。示例如下:
@("hello")public?class?HelloController?{????????}
编译工程
进入目录后,执行编译:
cd?demogradle?build?-x?test
运行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.html
github代码库地址:
https://github.com/WeBankBlockchain/SmartDev-Scaffold?
gitee代码库地址:
https://gitee.com/WeBankBlockchain/SmartDev-Scaffold
欢迎参与WeBankBlockchain的社区建设:
如项目对您有帮助,欢迎点亮我们的小星星(点击项目左上方Star按钮)。
欢迎提交代码(Pullrequests)。
提问和提交BUG。
如果发现代码存在安全漏洞,可通过以下地址
https://security.webank.com/上报。
标签:CONELLOHELLO区块链ConcealCastello CoinHELLO Labs区块链的未来发展前景怎么样
尊敬的BithumbGlobal用戶:基於多次項目審查和溝通,我們决定2021年4月21日15:00(UTC8)停止交易並下架以下幣種:Womprotocol(WOM)请注意:移除的交易對為:W.
1900/1/1 0:00:00Gate.io一直秉承真实,透明的理念,不造假数据,不干预市场交易,为用户提供真实自由的市场工具和稳定健康的市场服务。杠杆交易提供做多和做空机制,可以有效稳定市场到合理价值.
1900/1/1 0:00:004月22日16:00—4月29日16:00我们将开启Illuvium(ILV)超级空投福利,$45,000美元ILV等你来拿!新用户请点击注册Gate.io并参与活动.
1900/1/1 0:00:00来源:财联社作者:黄君芝资产管理规模超2500亿美元的美国资产管理公司——古根海姆投资公司全球首席投资官ScottMinerd周三警告称,比特币“泡沫很大”,近期可能会出现“重大调整”.
1900/1/1 0:00:00链闻消息,基于订阅功能的社区平台Locals.com宣布获得380万美元种子轮融资,本轮投资由风险投资基金CraftVentures领投,参投者包括几位加密货币领域内人士.
1900/1/1 0:00:00英格兰银行初步研究的贡献者之一告诉我们,为什么在英国需要数字英镑。消息英国财政大臣本周宣布成立CBDC工作组,将英格兰银行和英国Ma下财政部召集在一起,以协调对潜在的中央银行数字货币的探索.
1900/1/1 0:00:00