宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > 币安币 > 正文

想开发智能合约?先 get 下这个适合所有人的模型驱动法

作者:

时间:1900/1/1 0:00:00

:"\u003Csection\u003E\u003Cp\u003E编者按:本文来自\u003Cahref=\"https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FlwXu4gLuUxUoHEEY4Tz8Mg\"target=\"_blank\"\u003E区块链大本营\u003C\u002Fa\u003E,编译:火火酱,Odaily星球日报经授权转载。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimgalt=\"想开发智能合约?先get下这个适合所有人的模型驱动法\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202211\u002F04030423\u002Fbo56f0tx7ggeqmj3.jpg "/>!webp\"data-img-size-val=\"553,321\"\u002F\\\u003E\u003C\u002Fp\u003E\u003Cp\u003E不得不说,开发智能合约真的是一个既复杂又昂贵的过程。\u003C\u002Fp\u003E\u003Cp\u003E与在Solidity中编写智能合约相反,将智能合约建模为图形状态机具有很多优势。\u003C\u002Fp\u003E\u003Cp\u003E你可以专注于业务逻辑,而不必纠结于技术细节,甚至非程序员也可以理解你的合约在做什么。\u003C\u002Fp\u003E\u003Cp\u003E我们使用YAKINDUStatechartTools的开源版本将智能合约建模为状态机。这样一来,你就可以使用模拟器测试模型,并最终生成Solidity代码。\u003C\u002Fp\u003E\u003Cp\u003EYAKINDUStatechartTools:\u003Cahref=\"https:\u002F\u002Fwww.itemis.com\u002Fen\u002Fyakindu\u002Fstate-machine\u002F\"_src=\"https:\u002F\u002Fwww.itemis.com\u002Fen\u002Fyakindu\u002Fstate-machine\u002F\"\u003Ehttps:\u002F\u002Fwww.itemis.com\u002Fen\u002Fyakindu\u002Fstate-machine\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003C\u002Fsection\u003E\u003Csection\u003E\u003Cimgalt=\"想开发智能合约?先get下这个适合所有人的模型驱动法\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202211\u002F04030423\u002Fbo56f0tx7ggeqmj3.jpg "/>!webp\"data-img-size-val=\"553,401\"\u002F\\\u003E\u003C\u002Fsection\u003E\u003Ch3\u003E想开发智能合约,这两个问题你必须要解决\u003C\u002Fh3\u003E\u003Cp\u003E区块链的智能合约开发非常复杂。如果你想为以太坊区块链开发智能合约,那么就必须学习一种全新的编程语言,例如Solidity。\u003C\u002Fp\u003E\u003Cp\u003E如果你已经成功地编写和测试了自己的第一个智能合约,那么我要提醒你下一个有可能遇到的难题:由于一旦将智能合约部署到主网络后你就无法再对其进行更新,所以必须确保智能合约代码能够抵御攻击。\u003C\u002Fp\u003E\u003Cp\u003E虽然我们已经对已知的攻击媒介有了一定的了解,但是要在智能合约中找到这仍安全漏洞仍需要具备大量经验。\u003C\u002Fp\u003E\u003Cp\u003E参考:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cahref=\"https:\u002F\u002Fconsensys.github.io\u002Fsmart-contract-best-practices\u002Fknown_attacks\u002F\"_src=\"https:\u002F\u002Fconsensys.github.io\u002Fsmart-contract-best-practices\u002Fknown_attacks\u002F\"\u003Ehttps:\u002F\u002Fconsensys.github.io\u002F\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E过去的经验告诉我们,智能合约会经常遭到黑客入侵,出现资金被盗问题。\u003C\u002Fp\u003E\u003Cp\u003E由于保护智能合约的工具还不够成熟,无法发现所有潜在的安全漏洞,因此你需要对智能合约进行审核。但现在只有少数专家能够对智能合约进行编码审核,而这就引出了智能合约开发的第二个问题——价格昂贵。\u003C\u002Fp\u003E\u003Cp\u003E这两个问题放在一起,就使得个人或小型初创企业开发高质量的智能合约变得非常困难。\u003C\u002Fp\u003E\u003Ch3\u003E可解决这些问题的工具\u003C\u002Fh3\u003E\u003Cp\u003E两年前,我们开始开发YAKINDUSolidityTools,这是一个集成的开发环境,提供了诸如上下文敏感帮助、智能代码建议、快速修复、重构、模板和实时验证等功能。\u003C\u002Fp\u003E\u003Cp\u003E今年,我们将核心功能提取到所谓的语言服务器中,可以在许多编辑器中重复使用。\u003C\u002Fp\u003E\u003Cp\u003E不过,虽然这极大地改善了开发人员的开发体验,但这并不是一劳永逸的结果。\u003C\u002Fp\u003E\u003Cp\u003E语言服务器:\u003Cahref=\"https:\u002F\u002Fdwz.cn\u002FKQjhESNR\"_src=\"https:\u002F\u002Fdwz.cn\u002FKQjhESNR\"\u003Ehttps:\u002F\u002Fdwz.cn\u002FKQjhESNR\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Ch3\u003E对于非Solidity专家来讲,智能合约开发仍然十分困难\u003C\u002Fh3\u003E\u003Cp\u003E由于我们也是YAKINDUStatechartTools的开发人员,因此我们对状态机如何简化智能合约的开发进行了一些研究,并开始将语言服务器集成到YAKINDUStatechartTools中。\u003C\u002Fp\u003E\u003Cp\u003EYAKINDUStatechartTools:\u003Cahref=\"https:\u002F\u002Fdwz.cn\u002F1Me4yZeY\"_src=\"https:\u002F\u002Fdwz.cn\u002F1Me4yZeY\"\u003Ehttps:\u002F\u002Fdwz.cn\u002F1Me4yZeY\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E这基本上意味着我们可以在对状态机进行建模时访问Solidity的内置功能,例如全局变量、常量和函数。\u003C\u002Fp\u003E\u003Cp\u003E集成的仿真引擎可以验证模型的行为。只需点击一下鼠标,即可在模型之外生成智能合约Solidity代码。\u003C\u002Fp\u003E\u003Ch3\u003E什么是状态机?\u003C\u002Fh3\u003E\u003Cp\u003E大多数软件开发人员认为,状态机比看起来复杂得多,并且会在日常工作中避免使用它们。这并不奇怪,因为状态机通常被认为过于复杂和学术化,不适合实际应用。\u003C\u002Fp\u003E\u003Cp\u003E如果你看过维基百科上关于有限状态机的文章,就会发现诸如“计算的数学模型”、“确定性和非确定性自动机”以及“powerset构造”等术语。听起来一点也不好玩,对不?\u003C\u002Fp\u003E\u003Cp\u003E维基百科关于有限状态机的文章:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cahref=\"https:\u002F\u002Fdwz.cn\u002F1Me4yZeY\"_src=\"https:\u002F\u002Fdwz.cn\u002F1Me4yZeY\"\u003Ehttps:\u002F\u002Fdwz.cn\u002F1Me4yZeY\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E实际上,我们在这里进行智能合约开发的状态机,与学术上说的的状态机是完全不同的两种东西。这里提到的状态机,指的是为许多不同应用程序开发软件的有效方式。\u003C\u002Fp\u003E\u003Cp\u003E例如,它们经常在嵌入式系统领域中,被用于对汽车或飞机之类的反应系统进行建模。反应系统是一种对外界事件做出反应的系统,该事件由传感器或人机接口触发。\u003C\u002Fp\u003E\u003Cp\u003E智能合约没有什么不同,来自外界的交易触发了智能合约内部状态的改变。\u003C\u002Fp\u003E\u003Cp\u003E状态机的基本构建块是“状态”和“转换”。状态机是由有限数量的“状态”组成的。机器一次只处于一种状态,该状态被称为“活动状态”。它可以通过“触发器”或者在特定条件下从一种状态更改为另一种状态。\u003C\u002Fp\u003E\u003Ch3\u003E示例:管理许可证的智能合约\u003C\u002Fh3\u003E\u003Cp\u003E举个例子,我们开发了一个智能合约,该合约将被用于管理许可证。该用例非常适合于区块链,因为只要不终止合同,许可证持有者就可以控制许可证协议。\u003C\u002Fp\u003E\u003Csection\u003E\u003Cimgalt=\"想开发智能合约?先get下这个适合所有人的模型驱动法\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202211\u002F04030423\u002Fbo56f0tx7ggeqmj3.jpg "/>!webp\"data-img-size-val=\"553,321\"\u002F\\\u003E\u003Cp\u003E一个智能合约可以维护一个许可证的使用周期。智能合约创建后,许可证进入“Valid有效”状态,初始预算为10个代币。有两种不同的接口可以与智能合约进行交互。\u003C\u002Fp\u003E\u003Cp\u003E许可证的所有者可以增加预算以延长许可证期限。许可证管理者可以根据时间段定期收取许可证费用。\u003C\u002Fp\u003E\u003Cp\u003E如果没有更多可用预算,许可证将进入“Invalid无效”状态,直到有新的预算被添加到合约。许可证所有者可以随时终止合同,并收回剩余预算。\u003C\u002Fp\u003E\u003Cp\u003E可以看一下上面的图片。我认为该模型比500行Solidity代码更全面,也更易于理解。\u003C\u002Fp\u003E\u003Ch3\u003E模型驱动的智能合约开发有哪些优势?\u003C\u002Fh3\u003E\u003Cp\u003E首先,可以在更高的抽象级别上为智能合约建模。在隐藏所有技术细节后,你可以专注于要开发的域逻辑。甚至连根本没有编程经验的人都可以理解图形状态机。\u003C\u002Fp\u003E\u003Cp\u003E生成的智能合约代码质量更高。一旦确定了代码生成器会生成正确且安全的代码,你就不必审核使用此代码生成器生成的每个合约。这将减少小型创新型初创公司以及大型公司将其业务案例迁移到区块链技术的障碍。\u003C\u002Fp\u003E\u003C\u002Fsection\u003E\u003Cp\u003E\u003Cimgalt=\"想开发智能合约?先get下这个适合所有人的模型驱动法\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202211\u002F04030423\u002Fbo56f0tx7ggeqmj3.jpg "/>!webp\"data-img-size-val=\"639,300\"\u002F\\\u003E模型是独立于平台之外的。通过使用不同的代码生成器,你可以用不同的语言生成智能合约。也许在将来的某一天,将会产生另一个与以太坊一样强大的区块链。\u003C\u002Fp\u003E\u003Cp\u003E更值得高兴的是,你可以重复使用模型来为另一个区块链生成智能合约。\u003C\u002Fp\u003E\u003Cp\u003E你可以执行和测试模型。在将模型部署到区块链之前,你可以使用内置模拟器轻松执行模型,以此来验证模型是否符合预期。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cimgalt=\"想开发智能合约?先get下这个适合所有人的模型驱动法\"src=\"https:\u002F\u002Fpiccdn.0daily.com\u002F202211\u002F04030423\u002Fbo56f0tx7ggeqmj3.jpg "/>!webp\"data-img-size-val=\"640,280\"\u002F\\\u003E该工具仍处于早期开发阶段,代码生成器尚未准备好投入生产。生成高质量的合同代码是一项非常艰巨的任务,但我们希望我们能尽快提供一个可供下载的工作原型!\u003C\u002Fp\u003E

某巨鲸在7月2日至6日将5000万枚USDC转至币安:7月6日消息,据JieData监测,0x89df开头巨鲸地址在7月2日至6日将剩余的5000万枚USDC全部转入至币安。该地址曾在3月11日比特币价格上涨前将4500万枚USDC转入币安。[2023/7/6 22:21:32]

新加坡区块链公司Marvion以1500万美元收购Euro Amazing Limited旗下IP资产:金色财经报道,新加坡区块链公司 Marvion 宣布以 1500 万美元的价格成功收购 Euro Amazing Limited 旗下高价值 IP 资产,包括与电影相关的各类改编权相关的许可权、分许可权和地域权。据悉,Marvion 还获得了该公司涵盖其他媒体形式的 10 类改编权,包括真人院线电影、网络电影/电视电影、网剧/电视剧、网络短视频、2D/3D动画院线电影、动画网络电影/动漫-电视电影、动漫网/电视剧、网络短视频/剧集、PC/VR/AR游戏、手机/平板游戏。(prnewswire)[2023/6/8 21:24:29]

Azuki系列NFT24小时交易额为40.17万美元:金色财经消息,据NFTGo.io数据显示,Azuki系列NFT总市值达4.55亿美元,在所有NFT项目总市值排名中位列第10;其24小时交易额为40.17万美元,增幅达148.58%。截止发稿时,该系列NFT当前地板价为19ETH。[2022/7/25 2:35:42]

外媒:加密货币在发展中经济体被越来越多地用于支付工资:金色财经消息,生活在通货膨胀或有金融不稳定历史国家的个人越来越多地接受加密货币作为他们的主要收入来源。法兰克福学派区块链中心的创始人Philipp Sandner在接受采访时表示,在阿根廷、巴西、土耳其和非洲等国家,由于担心通胀,工资正在以加密货币支付。(Blockworks)[2022/7/12 2:06:55]

欧洲央行称必须“尽快”实施稳定币规则:金色财经报道,欧洲央行表示,在稳定币对金融稳定构成风险之前,必须紧迫地对其加强监管。欧洲央行在周一发布的一份宏观审慎公报中表示,稳定币带来的金融稳定风险目前在欧元区仍然有限,但如果增长趋势继续保持目前的速度,这种情况未来可能会改变。由于一些稳定币已经在为加密货币市场提供流动性方面发挥了关键作用,如果主要的稳定币崩溃,可能会产生重大溢出效应。欧洲央行警告称,如果数字资产与传统金融体系之间的联系继续扩大,就会产生多米诺骨牌效应。[2022/7/11 2:05:48]

标签:HTTTPS区块链IMGhtt币被https://etherscan.io区块链最直白的解释IMGNAI币

币安币热门资讯
坎坷上市却"CAN"糟破发,但无人敢否定其仍是区块链行业重大利好

编者按:本文来自白话区块链,作者:五火球教主,Odaily星球日报经授权转载。最近区块链行业里的人,可谓是经历着“冰火两重天”的体验.

1900/1/1 0:00:00
哈希率变化暗藏玄机,BTC抄底机会这次真的来了

编者按:本文来自中本小葱,作者:化简币市,Odaily星球日报经授权发布。加密货币分析师CharlesEdwards日前发推指出,最近一段时间里比特币哈希率数据的变化暗示矿工们又要迎接“命运抉择”了,究竟是继续硬抗并承担亏损,以此希望.

1900/1/1 0:00:00
为什么连BAT都很难参与到区块链技术的竞争中?

作者:Ultrain超脑链联合创始人&CEO郭睿1.区块链技术是什么当我们谈到区块链技术,大多数人想到的可能是去中心化的记账,但什么是去中心化的记帐呢?我们先看记帐这个词,”记”是指记录编写,“帐”广义上可以指数据.

1900/1/1 0:00:00
人民法院报:打击“区块链”,法律和技术缺一不可

编者按:文章来源人民法院报,Odaily星球日报经授权发布。面对“区块链”已经抬头且有蔓延的势头,在强调对其依法打击的同时,还应从技术上扎紧“笼子”。近期,区块链技术大热。一时间,多种数字货币价格上涨,资本应声狂欢.

1900/1/1 0:00:00
比特币的流动性泡影:1.5亿就能操纵的市场

编者按:本文来自链比特LianBit,作者:陳威廉,Odaily星球日报经授权转载。昨天的行情大家都看到了,突如其来的暴涨让大家都为之一振.

1900/1/1 0:00:00
11月全球区块链投资机构榜单:美国投资机构最活跃,战略投资占比高

编者按:本文来自01区块链,作者:袁婷,Odaily星球日报经授权转载。据零壹智库不完全统计,2019年11月,全球共发生54笔区块链领域的融资或并购事件,环比基本持平,同比增长69%,共涉及87家投资机构.

1900/1/1 0:00:00