來源|?hackernoon
編譯|火火醬
責編|Carol
出品|區塊鏈大本營(ID:
blockchain_camp),原題《想開發智能合約?先get下這個適合所有人的模型驅動法!》
不得不說,開發智能合約真的是一個既復雜又昂貴的過程。
與在Solidity中編寫智能合約相反,將智能合約建模為圖形狀態機具有很多優勢。
你可以專注于業務邏輯,而不必糾結于技術細節,甚至非程序員也可以理解你的合約在做什么。
我們使用YAKINDUStatechartTools的開源版本將智能合約建模為狀態機。這樣一來,你就可以使用模擬器測試模型,并最終生成Solidity代碼。
YAKINDUStatechartTools:
https://www.itemis.com/en/yakindu/state-machine/
動態 | 天秤座協會已成立新技術指導委員會以協調其平臺設計:天秤座協會本周四宣布,已經成立了一個技術指導委員會,以協調天秤座平臺的設計。根據天秤座開發人員頁面上的公告,這是繼去年十月創始成員叛逃之后,天秤座路線圖的最新更新。這個新宣布的小組將監督該項目的技術路線圖,指導代碼庫開發,并嘗試圍繞Libra項目建立一個開發人員社區。(Coindesk)[2020/1/17]
想開發智能合約
這兩個問題你必須要解決
區塊鏈的智能合約開發非常復雜。如果你想為以太坊區塊鏈開發智能合約,那么就必須學習一種全新的編程語言,例如Solidity。
如果你已經成功地編寫和測試了自己的第一個智能合約,那么我要提醒你下一個有可能遇到的難題:由于一旦將智能合約部署到主網絡后你就無法再對其進行更新,所以必須確保智能合約代碼能夠抵御攻擊。
分析 | 技術指標顯示XRP正在向0.25- 0.28美元的水平移動:加密貨幣交易員Joker日前發推稱,從艾略特波浪理論和圓底(Rounding Bottom)模式的角度來看,XRP的價格看起來不錯。后一個指標往往出現在長期下降趨勢即將結束的時候。該交易員表示,這兩種選擇都表明XRP正在向0.25- 0.28美元的水平移動。(U.Today)[2020/1/13]
雖然我們已經對已知的攻擊媒介有了一定的了解,但是要在智能合約中找到這仍安全漏洞仍需要具備大量經驗。
參考:
https://consensys.github.io/smart-contract-best-practices/known_attacks/
過去的經驗告訴我們,智能合約會經常遭到黑客入侵,出現資金被盜問題。
由于保護智能合約的工具還不夠成熟,無法發現所有潛在的安全漏洞,因此你需要對智能合約進行審核。但現在只有少數專家能夠對智能合約進行編碼審核,而這就引出了智能合約開發的第二個問題——價格昂貴。
分析 | 部分技術指標顯示比特幣正處于買入周期:據彭博報道,GTI Vera收斂差異指標顯示,比特幣正處于6個月來最長的購買周期。如果買盤壓力像過去13天那樣持續,在去年下跌74%之后,比特幣價格可能繼續上漲。eToro分析師Mati Greenspan認為,從圖表技術分析上看,“我們更接近底部,而不是頂部”。此外,彭博加密指數正處于自9月上漲以來最長的“買入周期”。Bloomberg Intelligence分析師Mike McGlone表示,與應稅虧損相關的拋盤結束,可能是周三反彈的原因之一。[2019/1/3]
這兩個問題放在一起,就使得個人或小型初創企業開發高質量的智能合約變得非常困難。
可解決這些問題的工具
兩年前,我們開始開發YAKINDUSolidityTools,這是一個集成的開發環境,提供了諸如上下文敏感幫助、智能代碼建議、快速修復、重構、模板和實時驗證等功能。
分析 | Coindesk:BTC8個月來首次出現技術指標看漲信號:據coindesk分析,BTC突破了看跌通道、周線MACD出現0軸金叉,表明BTC可能在未來幾周有可能沖擊7月高點8500美元。在接下來的24小時內,投資者需要密切關注4小時圖中的三角旗形態,如未能突破至7500美元或將使多頭獲利了結,導致BTC轉而跌至7000美元。[2018/9/4]
今年,我們將核心功能提取到所謂的語言服務器中,可以在許多編輯器中重復使用。
不過,雖然這極大地改善了開發人員的開發體驗,但這并不是一勞永逸的結果。
語言服務器:
https://dwz.cn/KQjhESNR
對于非Solidity專家來講
智能合約開發仍然十分困難
由于我們也是YAKINDUStatechartTools的開發人員,因此我們對狀態機如何簡化智能合約的開發進行了一些研究,并開始將語言服務器集成到YAKINDUStatechartTools中。
行情 | 救贖說幣:ONT目前不能買,要等技術指標出現才能買入:據救贖分析,本體就行情走勢趨勢來說,是不容樂觀的。我們看技術指標macd從箭頭處跌下0軸之后,大部分時間都在0軸之下,代表的是持續的空軍優勢。持續的空軍優勢,是不存在買入的理由的,是不管基本面如何利好都不能入場的。但是我們都知道,本體的基本面是很強的,所以我們就等一個買入點就好了。我們再看234處的下跌幅度不是很大,但是跌之后沒有多大漲幅就接著跌,所以這個可以分析出ONT的買盤真的不強烈。所以要想買入這個幣種,要等一個大跌就可以買了。[2018/7/16]
YAKINDUStatechartTools:?
https://dwz.cn/1Me4yZeY
這基本上意味著我們可以在對狀態機進行建模時訪問Solidity的內置功能,例如全局變量、常量和函數。
集成的仿真引擎可以驗證模型的行為。只需點擊一下鼠標,即可在模型之外生成智能合約Solidity代碼。
什么是狀態機?
大多數軟件開發人員認為,狀態機比看起來復雜得多,并且會在日常工作中避免使用它們。這并不奇怪,因為狀態機通常被認為過于復雜和學術化,不適合實際應用。
如果你看過維基百科上關于有限狀態機的文章,就會發現諸如“計算的數學模型”、“確定性和非確定性自動機”以及“powerset構造”等術語。聽起來一點也不好玩,對不?
維基百科關于有限狀態機的文章:
https://dwz.cn/1Me4yZeY
實際上,我們在這里進行智能合約開發的狀態機,與學術上說的的狀態機是完全不同的兩種東西。這里提到的狀態機,指的是為許多不同應用程序開發軟件的有效方式。
例如,它們經常在嵌入式系統領域中,被用于對汽車或飛機之類的反應系統進行建模。反應系統是一種對外界事件做出反應的系統,該事件由傳感器或人機接口觸發。
智能合約沒有什么不同,來自外界的交易觸發了智能合約內部狀態的改變。
狀態機的基本構建塊是“狀態”和“轉換”。狀態機是由有限數量的“狀態”組成的。機器一次只處于一種狀態,該狀態被稱為“活動狀態”。它可以通過“觸發器”或者在特定條件下從一種狀態更改為另一種狀態。
示例:管理許可證的智能合約
舉個例子,我們開發了一個智能合約,該合約將被用于管理許可證。該用例非常適合于區塊鏈,因為只要不終止合同,許可證持有者就可以控制許可證協議。
一個智能合約可以維護一個許可證的使用周期。智能合約創建后,許可證進入“Valid有效”狀態,初始預算為10個代幣。有兩種不同的接口可以與智能合約進行交互。
許可證的所有者可以增加預算以延長許可證期限。許可證管理者可以根據時間段定期收取許可證費用。
如果沒有更多可用預算,許可證將進入“Invalid無效”狀態,直到有新的預算被添加到合約。許可證所有者可以隨時終止合同,并收回剩余預算。
可以看一下上面的圖片。我認為該模型比500行Solidity代碼更全面,也更易于理解。
模型驅動的智能合約開發有哪些優勢?
首先,可以在更高的抽象級別上為智能合約建模。在隱藏所有技術細節后,你可以專注于要開發的域邏輯。甚至連根本沒有編程經驗的人都可以理解圖形狀態機。
生成的智能合約代碼質量更高。一旦確定了代碼生成器會生成正確且安全的代碼,你就不必審核使用此代碼生成器生成的每個合約。這將減少小型創新型初創公司以及大型公司將其業務案例遷移到區塊鏈技術的障礙。
模型是獨立于平臺之外的。通過使用不同的代碼生成器,你可以用不同的語言生成智能合約。也許在將來的某一天,將會產生另一個與以太坊一樣強大的區塊鏈。
更值得高興的是,你可以重復使用模型來為另一個區塊鏈生成智能合約。
你可以執行和測試模型。在將模型部署到區塊鏈之前,你可以使用內置模擬器輕松執行模型,以此來驗證模型是否符合預期。
該工具仍處于早期開發階段,代碼生成器尚未準備好投入生產。生成高質量的合同代碼是一項非常艱巨的任務,但我們希望我們能盡快提供一個可供下載的工作原型!
不可否認,在全球經濟發展的大環境下,非洲近年的經濟和互聯網都取得了一定的發展,但非洲的經濟發展卻從來沒有踏上快車行列.
1900/1/1 0:00:00文:蘇田 出品:CoinVoice 2019年12月31日,柳傳志退休,聯想將進入完全意義上的后柳傳志時代.
1900/1/1 0:00:00本文發表于《重慶大學學報》2020年第2期,由作者授權巴比特資訊網絡首發摘要:Facebook的穩定幣Libra項目,引起各國金融界和監管機構的關注和警惕.
1900/1/1 0:00:00金融領域一直被視作區塊鏈技術的極佳應用場景,國內各主要金融機構在區塊鏈應用上的探索和發聲也日漸頻繁.
1900/1/1 0:00:00來源:火星財經 12月18日,央視新聞頻道再對打著“區塊鏈”旗號進行虛擬貨幣交易和詐騙的行為進行報道.
1900/1/1 0:00:00編者注:原標題為《比特幣必須跨越鴻溝:如想成功》前言:如果按照技術采用生命周期的模型來看比特幣的采用階段,當前處于哪個階段?當前才剛剛從創新者階段過渡到少數的早期采用者階段.
1900/1/1 0:00:00