比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

技術指南 | 模型驅動的智能合約開發,了解一下_SOL

Author:

Time:1900/1/1 0:00:00

來源|?hackernoon

編譯|火火醬

責編|Carol

出品|區塊鏈大本營(ID:

blockchain_camp),原題《想開發智能合約?先get下這個適合所有人的模型驅動法!》

不得不說,開發智能合約真的是一個既復雜又昂貴的過程。

與在Solidity中編寫智能合約相反,將智能合約建模為圖形狀態機具有很多優勢。

你可以專注于業務邏輯,而不必糾結于技術細節,甚至非程序員也可以理解你的合約在做什么。

我們使用YAKINDUStatechartTools的開源版本將智能合約建模為狀態機。這樣一來,你就可以使用模擬器測試模型,并最終生成Solidity代碼。

YAKINDUStatechartTools:

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

Bitget明星交易員JY侃幣:投資路徑不應以技術指標為依據:今日15:00,Bitget明星交易員JY侃幣在官方社群進行AMA時表示:眾投資者的投資路徑不應以技術指標來決定資金的動向,切勿把輔助性工具當成是真理,不做過分依賴。他還說到:合約具有雙面性,應合理設置自己能承受范圍的止損條件。最后談論到Bitget一鍵跟單系統時他強調平臺公開交易員以及跟隨者的盈利,有助于用戶的合理選擇,避免了盲目跟單。[2020/6/5]

想開發智能合約

這兩個問題你必須要解決

區塊鏈的智能合約開發非常復雜。如果你想為以太坊區塊鏈開發智能合約,那么就必須學習一種全新的編程語言,例如Solidity。

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

聲音 | 分析師:比特幣已在CME和現貨交易所爆發,技術指標顯示看漲:加密貨幣分析師Filbfilb今日發推稱,“在我看來,比特幣已經在CME和現貨交易所爆發,OBV(On-balance volume,平衡交易量)已經得到確認,而宏觀TFs正在等待更高的價位。也許會有一些橫盤和后測,但是所有的一切都讓我對市場看漲。”[2020/1/13]

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

參考:

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

過去的經驗告訴我們,智能合約會經常遭到黑客入侵,出現資金被盜問題。

由于保護智能合約的工具還不夠成熟,無法發現所有潛在的安全漏洞,因此你需要對智能合約進行審核。但現在只有少數專家能夠對智能合約進行編碼審核,而這就引出了智能合約開發的第二個問題——價格昂貴。

聲音 | 彭博社:BTC處于超賣區域,GTI關鍵技術指標自2018年末以來首次發出買入信號:據彭博社報道,GTI全球強度指標顯示,BTC目前處于超賣區域。該指標自2018年12月末以來,首次發出買入(看漲)信號。并且,BTC若能穩在8000美元以上,這是另一個展示其價格強勢的跡象。彭博資訊分析師Mike McGlone表示,“比特幣的成熟過程將在年底加速,因為其處在一個更溫和的價格升值過程中,波動性將下降。”(dailyhodl)[2019/10/6]

這兩個問題放在一起,就使得個人或小型初創企業開發高質量的智能合約變得非常困難。

可解決這些問題的工具

兩年前,我們開始開發YAKINDUSolidityTools,這是一個集成的開發環境,提供了諸如上下文敏感幫助、智能代碼建議、快速修復、重構、模板和實時驗證等功能。

今年,我們將核心功能提取到所謂的語言服務器中,可以在許多編輯器中重復使用。

動態 | 彭博:GTI Vera技術指標自6月份以來首次發出買入信號,可能預示著新的高點:近日比特幣在全球金融市場中的避險屬性已逐步顯現。8月7日,彭博社發文稱,基于上周末的交易活動,追蹤正面和負面趨勢的GTI Vera Convergence-Divergence指標產生了新的買入信號,這是該指標自6月份以來的首次買入信號,可能預示著比特幣將達到新的高點。彭博分析師Mike McGlone表示,與其他風險資產相比,比特幣的漲勢正在上升,比特幣應該仍然是其存儲價值需求增長的主要受益者,與黃金相似。[2019/8/7]

不過,雖然這極大地改善了開發人員的開發體驗,但這并不是一勞永逸的結果。

語言服務器:

https://dwz.cn/KQjhESNR

對于非Solidity專家來講

智能合約開發仍然十分困難

由于我們也是YAKINDUStatechartTools的開發人員,因此我們對狀態機如何簡化智能合約的開發進行了一些研究,并開始將語言服務器集成到YAKINDUStatechartTools中。

聲音 | Josh Rager:技術指標信號確認牛市:加密貨幣分析師Josh Rager 5月28日發推表示:“BTC的3天顧氏均線流翻綠。我已經等了幾個星期這個信號出現來確認牛市趨勢。1天顧氏均線流翻綠可能是假信號,但是3天顧氏均線流翻綠是一個很好的延續信號,建議逢低買入。要記得,上一次BTC歷史價格的3天顧氏均線流的最后一次翻綠導致了之后長達25個月的上升趨勢。”[2019/5/28]

YAKINDUStatechartTools:?

https://dwz.cn/1Me4yZeY

這基本上意味著我們可以在對狀態機進行建模時訪問Solidity的內置功能,例如全局變量、常量和函數。

集成的仿真引擎可以驗證模型的行為。只需點擊一下鼠標,即可在模型之外生成智能合約Solidity代碼。

什么是狀態機?

大多數軟件開發人員認為,狀態機比看起來復雜得多,并且會在日常工作中避免使用它們。這并不奇怪,因為狀態機通常被認為過于復雜和學術化,不適合實際應用。

如果你看過維基百科上關于有限狀態機的文章,就會發現諸如“計算的數學模型”、“確定性和非確定性自動機”以及“powerset構造”等術語。聽起來一點也不好玩,對不?

維基百科關于有限狀態機的文章:

https://dwz.cn/1Me4yZeY

實際上,我們在這里進行智能合約開發的狀態機,與學術上說的的狀態機是完全不同的兩種東西。這里提到的狀態機,指的是為許多不同應用程序開發軟件的有效方式。

例如,它們經常在嵌入式系統領域中,被用于對汽車或飛機之類的反應系統進行建模。反應系統是一種對外界事件做出反應的系統,該事件由傳感器或人機接口觸發。

智能合約沒有什么不同,來自外界的交易觸發了智能合約內部狀態的改變。

狀態機的基本構建塊是“狀態”和“轉換”。狀態機是由有限數量的“狀態”組成的。機器一次只處于一種狀態,該狀態被稱為“活動狀態”。它可以通過“觸發器”或者在特定條件下從一種狀態更改為另一種狀態。

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

舉個例子,我們開發了一個智能合約,該合約將被用于管理許可證。該用例非常適合于區塊鏈,因為只要不終止合同,許可證持有者就可以控制許可證協議。

一個智能合約可以維護一個許可證的使用周期。智能合約創建后,許可證進入“Valid有效”狀態,初始預算為10個代幣。有兩種不同的接口可以與智能合約進行交互。

許可證的所有者可以增加預算以延長許可證期限。許可證管理者可以根據時間段定期收取許可證費用。

如果沒有更多可用預算,許可證將進入“Invalid無效”狀態,直到有新的預算被添加到合約。許可證所有者可以隨時終止合同,并收回剩余預算。

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

模型驅動的智能合約開發有哪些優勢?

首先,可以在更高的抽象級別上為智能合約建模。在隱藏所有技術細節后,你可以專注于要開發的域邏輯。甚至連根本沒有編程經驗的人都可以理解圖形狀態機。

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

模型是獨立于平臺之外的。通過使用不同的代碼生成器,你可以用不同的語言生成智能合約。也許在將來的某一天,將會產生另一個與以太坊一樣強大的區塊鏈。

更值得高興的是,你可以重復使用模型來為另一個區塊鏈生成智能合約。

你可以執行和測試模型。在將模型部署到區塊鏈之前,你可以使用內置模擬器輕松執行模型,以此來驗證模型是否符合預期。

該工具仍處于早期開發階段,代碼生成器尚未準備好投入生產。生成高質量的合同代碼是一項非常艱巨的任務,但我們希望我們能盡快提供一個可供下載的工作原型!

Tags:LIDSOLID區塊鏈SOLethylideneSOLID幣區塊鏈專業學什么課程BeNFT Solutions

以太坊交易所
美國SEC主席:區塊鏈技術發展有助于促進資本形成,為投資者提供投資機會_ING

美國證券交易委員會似乎在加密行業中非常活躍,此前它幾次嘗試對該行業的各個方面進行規范。最近,SEC主席杰伊·克萊頓在參議院委員會作證以解決多個問題,包括區塊鏈技術和加密貨幣.

1900/1/1 0:00:00
巴比特專訪丨5年探索,4款新品,3個原則,恒生電子區塊鏈落地之道_BAA

12月19日,恒生電子舉辦“iBLOCKCHAIN”區塊鏈新品發布會,這是恒生電子自2015年著手研究區塊鏈以來召開的最盛大的區塊鏈新品發布會.

1900/1/1 0:00:00
Bakkt計劃于2020年推出一套數字貨幣產品,與布倫特原油期貨合約類似_BTC

目前還不清楚誰將領導Bakkt進入2020年,但該公司的產品路線圖在某種程度上已經非常明了。 圖片來源:visualhunt在最近發表的一篇博文中,這家洲際交易所旗下公司宣布將推出兩種新的合約,

1900/1/1 0:00:00
聯想集團區塊鏈迷局_元宇宙

文:蘇田 出品:CoinVoice 2019年12月31日,柳傳志退休,聯想將進入完全意義上的后柳傳志時代.

1900/1/1 0:00:00
區塊鏈創業公司Upvest獲得780萬美元A輪融資,瞄準“ 10萬億歐元”的另類投資資產類別_VES

Upvest是一家德國初創公司,幫助公司在區塊鏈上實現金融資產代幣化。該公司今日正式宣布已經籌集了700萬歐元的A輪融資.

1900/1/1 0:00:00
Gavin Wood:扎克伯格的Libra存在根本問題,或被載入歷史腳注_POLK

注:作者GavinWood是以太坊、Polkadot以及Parity技術公司的聯合創始人,同時他也是Web3基金會的創始人,其認為新的“FAANG”五巨頭將不再是Facebook這樣的公司.

1900/1/1 0:00:00
ads