欧美人与禽2O2O性论交,秋霞免费视频,国产美女视频免费观看网址,国产成人亚洲综合网色欲网

想開(kāi)發(fā)智能合約?0門(mén)檻先 GET!- 火星技術(shù)帖(如何開(kāi)發(fā)智能合約)

想開(kāi)發(fā)智能合約?0門(mén)檻先 GET!- 火星技術(shù)帖(如何開(kāi)發(fā)智能合約)

免責(zé)聲明:本文旨在傳遞更多市場(chǎng)信息,不構(gòu)成任何投資建議。文章僅代表作者觀點(diǎn),不代表火星財(cái)經(jīng)官方立場(chǎng)。

小編:記得關(guān)注哦

來(lái)源:區(qū)塊鏈大本營(yíng)

想開(kāi)發(fā)智能合約?0門(mén)檻先 GET!- 火星技術(shù)帖(如何開(kāi)發(fā)智能合約)

編譯 | 火火醬

原標(biāo)題 想開(kāi)發(fā)智能合約?先 get 下這個(gè)適合所有人的模型驅(qū)動(dòng)法?。ㄎ哪┯懈@?/p>

不得不說(shuō),開(kāi)發(fā)智能合約真的是一個(gè)既復(fù)雜又昂貴的過(guò)程。與在Solidity中編寫(xiě)智能合約相反,將智能合約建模為圖形狀態(tài)機(jī)(graphical state machine)具有很多優(yōu)勢(shì)。你可以專(zhuān)注于業(yè)務(wù)邏輯,而不必糾結(jié)于技術(shù)細(xì)節(jié),甚至非程序員也可以理解你的合約在做什么。(還可以生成堅(jiān)固的Solidity代碼,并且不再需要審核。同時(shí),也可以輕松地為不同的智能合約代碼切換平臺(tái)或目標(biāo)語(yǔ)言。)

我們使用YAKINDU Statechart Tools的開(kāi)源版本將智能合約建模為狀態(tài)機(jī)。這樣一來(lái),你就可以使用模擬器測(cè)試模型,并最終生成Solidity代碼。

YAKINDU Statechart Tools:https://www.itemis.com/en/yakindu/state-machine/

想開(kāi)發(fā)智能合約?0門(mén)檻先 GET!- 火星技術(shù)帖(如何開(kāi)發(fā)智能合約)

想開(kāi)發(fā)智能合約

這兩個(gè)問(wèn)題你必須要解決

區(qū)塊鏈的智能合約開(kāi)發(fā)非常復(fù)雜。如果你想為以太坊區(qū)塊鏈開(kāi)發(fā)智能合約,那么就必須學(xué)習(xí)一種全新的編程語(yǔ)言,例如Solidity。

如果你已經(jīng)成功地編寫(xiě)和測(cè)試了自己的第一個(gè)智能合約,那么我要提醒你下一個(gè)有可能遇到的難題:由于一旦將智能合約部署到主網(wǎng)絡(luò)后你就無(wú)法再對(duì)其進(jìn)行更新,所以必須確保智能合約代碼能夠抵御攻擊。

雖然我們已經(jīng)對(duì)已知的攻擊媒介有了一定的了解,但是要在智能合約中找到這仍安全漏洞仍需要具備大量經(jīng)驗(yàn)。

參考:https://consensys.github.io/smart-contract-best-practices/known_attacks/

過(guò)去的經(jīng)驗(yàn)告訴我們,智能合約會(huì)經(jīng)常遭到黑客入侵,出現(xiàn)資金被盜問(wèn)題。

由于保護(hù)智能合約的工具還不夠成熟,無(wú)法發(fā)現(xiàn)所有潛在的安全漏洞,因此你需要對(duì)智能合約進(jìn)行審核。但現(xiàn)在只有少數(shù)專(zhuān)家能夠?qū)χ悄芎霞s進(jìn)行編碼審核,而這就引出了智能合約開(kāi)發(fā)的第二個(gè)問(wèn)題——價(jià)格昂貴。

這兩個(gè)問(wèn)題放在一起,就使得個(gè)人或小型初創(chuàng)企業(yè)開(kāi)發(fā)高質(zhì)量的智能合約變得非常困難。

可解決這些問(wèn)題的工具

兩年前,我們開(kāi)始開(kāi)發(fā)YAKINDU Solidity Tools,這是一個(gè)集成的開(kāi)發(fā)環(huán)境,提供了諸如上下文敏感幫助、智能代碼建議、快速修復(fù)、重構(gòu)、模板實(shí)時(shí)驗(yàn)證等功能。

今年,我們將核心功能提取到所謂的語(yǔ)言服務(wù)器中,可以在許多編輯器(如Atom或Visual Studio Code)中重復(fù)使用。

不過(guò),雖然這極大地改善了開(kāi)發(fā)人員的開(kāi)發(fā)體驗(yàn),但這并不是一勞永逸的結(jié)果。

語(yǔ)言服務(wù)器:https://dwz.cn/KQjhESNR

對(duì)于非Solidity專(zhuān)家來(lái)講智能合約開(kāi)發(fā)仍然十分困難

由于我們也是YAKINDU Statechart Tools(狀態(tài)機(jī)的建模環(huán)境)的開(kāi)發(fā)人員,因此我們對(duì)狀態(tài)機(jī)如何簡(jiǎn)化智能合約的開(kāi)發(fā)進(jìn)行了一些研究,并開(kāi)始將語(yǔ)言服務(wù)器集成到Y(jié)AKINDU Statechart Tools中。

YAKINDU Statechart Tools: https://dwz.cn/1Me4yZeY

這基本上意味著我們可以在對(duì)狀態(tài)機(jī)進(jìn)行建模時(shí)訪問(wèn)Solidity的內(nèi)置功能,例如全局變量常量函數(shù)。

集成的仿真引擎可以驗(yàn)證模型的行為。只需點(diǎn)擊一下鼠標(biāo),即可在模型之外生成智能合約Solidity代碼。

什么是狀態(tài)機(jī)?

大多數(shù)軟件開(kāi)發(fā)人員認(rèn)為,狀態(tài)機(jī)比看起來(lái)復(fù)雜得多,并且會(huì)在日常工作中避免使用它們。這并不奇怪,因?yàn)闋顟B(tài)機(jī)通常被認(rèn)為過(guò)于復(fù)雜和學(xué)術(shù)化,不適合實(shí)際應(yīng)用。

如果你看過(guò)維基百科上關(guān)于有限狀態(tài)機(jī)的文章,就會(huì)發(fā)現(xiàn)諸如“計(jì)算的數(shù)學(xué)模型”、“確定性(DFA)和非確定性(NFA,GNFA)自動(dòng)機(jī)”以及“powerset構(gòu)造”等術(shù)語(yǔ)。聽(tīng)起來(lái)一點(diǎn)也不好玩,對(duì)不?

維基百科關(guān)于有限狀態(tài)機(jī)的文章:https://dwz.cn/1Me4yZeY

實(shí)際上,我們?cè)谶@里進(jìn)行智能合約開(kāi)發(fā)的狀態(tài)機(jī),與學(xué)術(shù)上說(shuō)的的狀態(tài)機(jī)是完全不同的兩種東西。這里提到的狀態(tài)機(jī),指的是為許多不同應(yīng)用程序開(kāi)發(fā)軟件的有效方式

例如,它們經(jīng)常在嵌入式系統(tǒng)領(lǐng)域中,被用于對(duì)汽車(chē)或飛機(jī)之類(lèi)的反應(yīng)系統(tǒng)進(jìn)行建模。反應(yīng)系統(tǒng)是一種對(duì)外界事件做出反應(yīng)的系統(tǒng),該事件由傳感器或人機(jī)接口(例如電梯或咖啡機(jī))觸發(fā)。

智能合約沒(méi)有什么不同,來(lái)自外界的交易觸發(fā)了智能合約內(nèi)部狀態(tài)的改變。

狀態(tài)機(jī)的基本構(gòu)建塊是“狀態(tài)”和“轉(zhuǎn)換”。狀態(tài)機(jī)是由有限數(shù)量的“狀態(tài)”組成的。機(jī)器一次只處于一種狀態(tài),該狀態(tài)被稱(chēng)為“活動(dòng)狀態(tài)”。它可以通過(guò)“觸發(fā)器”或者在特定條件下從一種狀態(tài)更改為另一種狀態(tài)。

示例:管理許可證的智能合約

舉個(gè)例子,我們開(kāi)發(fā)了一個(gè)智能合約,該合約將被用于管理許可證。該用例非常適合于區(qū)塊鏈,因?yàn)橹灰唤K止合同,許可證持有者就可以控制許可證協(xié)議。

想開(kāi)發(fā)智能合約?0門(mén)檻先 GET!- 火星技術(shù)帖(如何開(kāi)發(fā)智能合約)

一個(gè)智能合約可以維護(hù)一個(gè)許可證的使用周期。智能合約創(chuàng)建后,許可證進(jìn)入“Valid有效”狀態(tài),初始預(yù)算為10個(gè)代幣。有兩種不同的接口可以與智能合約進(jìn)行交互。

許可證的所有者可以增加預(yù)算以延長(zhǎng)許可證期限。許可證管理者可以根據(jù)時(shí)間段定期收取許可證費(fèi)用。

如果沒(méi)有更多可用預(yù)算,許可證將進(jìn)入“Invalid無(wú)效”狀態(tài),直到有新的預(yù)算被添加到合約。許可證所有者可以隨時(shí)終止合同,并收回剩余預(yù)算。

可以看一下上面的圖片。我認(rèn)為該模型比500行Solidity代碼更全面,也更易于理解。

模型驅(qū)動(dòng)的智能合約開(kāi)發(fā)有哪些優(yōu)勢(shì)?

首先,可以在更高的抽象級(jí)別上為智能合約建模。在隱藏所有技術(shù)細(xì)節(jié)后,你可以專(zhuān)注于要開(kāi)發(fā)的域邏輯。甚至連根本沒(méi)有編程經(jīng)驗(yàn)的人都可以理解圖形狀態(tài)機(jī)。(關(guān)注于業(yè)務(wù)模型,而不是技術(shù)細(xì)節(jié)或編程語(yǔ)言。)

生成的智能合約代碼質(zhì)量更高。一旦確定了代碼生成器會(huì)生成正確且安全的代碼,你就不必審核使用此代碼生成器生成的每個(gè)合約。這將減少小型創(chuàng)新型初創(chuàng)公司以及大型公司將其業(yè)務(wù)案例遷移到區(qū)塊鏈技術(shù)的障礙。

想開(kāi)發(fā)智能合約?0門(mén)檻先 GET!- 火星技術(shù)帖(如何開(kāi)發(fā)智能合約)

模型是獨(dú)立于平臺(tái)之外的。通過(guò)使用不同的代碼生成器,你可以用不同的語(yǔ)言(如Solidity、Vyper或Yul)生成智能合約。也許在將來(lái)的某一天,將會(huì)產(chǎn)生另一個(gè)與以太坊一樣強(qiáng)大的區(qū)塊鏈。

更值得高興的是,你可以重復(fù)使用模型來(lái)為另一個(gè)區(qū)塊鏈生成智能合約。

你可以執(zhí)行和測(cè)試模型。在將模型部署到區(qū)塊鏈之前,你可以使用內(nèi)置模擬器輕松執(zhí)行模型,以此來(lái)驗(yàn)證模型是否符合預(yù)期。

想開(kāi)發(fā)智能合約?0門(mén)檻先 GET!- 火星技術(shù)帖(如何開(kāi)發(fā)智能合約)

該工具仍處于早期開(kāi)發(fā)階段,代碼生成器尚未準(zhǔn)備好投入生產(chǎn)。生成高質(zhì)量的合同代碼是一項(xiàng)非常艱巨的任務(wù),但我們希望我們能盡快提供一個(gè)可供下載的工作原型!

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢(xún)
分享本頁(yè)
返回頂部