開發(fā)NEO智能合約的流程是什么

今天小編給大家分享一下開發(fā)NEO智能合約的流程是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

站在用戶的角度思考問題,與客戶深入溝通,找到靜樂網站設計與靜樂網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、成都網站建設、企業(yè)官網、英文網站、手機端網站、網站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋靜樂地區(qū)。

兩步流程法

傳統(tǒng)上來說,NEO智能合約開發(fā)有兩步開發(fā)流程:編碼和測試。這篇官方的教程提供了關于這個工作流程的詳細信息。

在編碼階段,NEO官方支持C#(示例)。我們也可以使用Java和Python開發(fā)智能合約。你可以輕松的在Google和YouTube上找到教程和示例代碼頁,以了解如何編寫NEO智能合約。

開發(fā)NEO智能合約的流程是什么

我們依賴于測試網來進行測試工作。如上圖所示,對于測試網,我們有很多選擇。

公共測試網絡

最常見的方法是使用公共的測試網絡。NEO智能經濟、CoZ和NEL分別維護了三個主要的公共測試網絡。Alex Guba的教程詳細闡述了如何在NEO和CoZ測試網絡上進行測試之前,同步區(qū)塊并申請GAS,不過NEL的測試網絡對支持本地化的中國開發(fā)者更加友好。

在大多數情況下,你可以通過NEO API(完整引用)運行RPC調用來與區(qū)塊鏈進行交互。部分APIs只有當你運行了一個具有開放錢包的NEO.CLI節(jié)點時,才可使用。但是如果NEO.Scan賦予了測試網權限,則可以在不運行節(jié)點的情況下調用類似的服務。例如,API getBalance需要一個正在運行的節(jié)點,但是你可以使用Neo-Scan提供的get_balance接口來獲得類似的功能。我建立了一個Postman集合來幫助測試這些遠程調用。你只需更改測試網絡(或Neo-Scan)的值即可使用它。

NeoCompile Eco有一個新的特殊的公共測試網絡,這激發(fā)了我們轉向四步工作流程的靈感。我們將在下一節(jié)詳細討論它。

私人測試網絡

另一個好的方法是建立你自己的私人測試網絡。與公共測試網絡相比,私人測試網絡的優(yōu)勢在于你可以獲得完全的控制權。使用私人測試網絡的第一個原因是,它真的非常有用,也很鼓舞人心,因為它會讓人產生錢包中持有數百萬的NEO和GAS的錯覺。與此同時,與公共測試網絡相比,我們不需要擔心鏈再生,連接失敗,或者因為其他開發(fā)者錯誤導致的網絡擁堵。

NEO官網提供了一個在云服務器上設置私人網絡的逐步指南。不過查看了我在Azure上的賬單后,我不建議你這么做,除非你不得不和其他人共享鏈數據。Neo-privatenet-docker非常適合在本地計算機上構建私人的測試網絡,同時可以幫你節(jié)省大量配置和執(zhí)行指令的時間。如果你在筆記本電腦上運行它,它還能幫助你在加拿大的冬天保持你的體溫。

兩步流程法的局限性

這個兩步工作流程法已經成熟,并且被大多數現(xiàn)有的項目所采用。然而,與傳統(tǒng)的軟件項目相比,它仍有一些局限性。主要的一點是調試的代價非常高昂,要監(jiān)視變量的運行時值,最好的選擇是使用運行時通知,如以下代碼段所示:

byte[] ba0 = CallSomeFunction();
byte[] ba1 = CallAnotherFunction();

//Print out the value of ba0 and ba1 to ApplicationhLog
Runtime.Notify(ba0, ba1);

我們需要使用neon重新編譯項目,確保有足夠的GAS并進行重新部署,使用正確的格式組成適當的參數,然后調用它,并等待20-30秒的時間等待下一個區(qū)塊的出現(xiàn),調用API getapplicationlog來獲取JSON格式的日志,使用pretty format格式打印響應的內容來查找日志值(查看以下示例中高亮的部分)。日志值通常表示為字節(jié)數組,因此我們需要將它們轉換為字符串或者大整數類型…總共7個步驟。

[
  {
    "jsonrpc": "2.0",
    "id": 5,
    "result": {
      "txid": "0x7e3f08a8af4290693184b413ba1d58bede8462cb565baba8ffcc380bf947e317",
      "executions": [
        {
          "trigger": "Application",
          "contract": "0x32682404d4313ecf80b70e1323ccf908a80fdfc0",
          "vmstate": "HALT, BREAK",
          "gas_consumed": "0.039",
          "stack": [],
          "notifications": [
            {
              "contract": "0xaeccdcf6d7ecf827e7e6baec3c233eca08c27ee3",
              "state": {
                "type": "Array",
                "value": [
                  {
                    "type": "ByteArray",
                    "value": "010203"
                  },
                  {
                    "type": "ByteArray",
                    "value": "04090d"
                  }
                ]
              }
            }
          ]
        }
      ]
    }
  }
]

官方文檔中有介紹單元測試的章節(jié),但是其中的示例仍然需要提前編譯和/或部署.avm文件。

當我們在開發(fā)基于NEO的區(qū)塊鏈游戲CarryBattle時,我的團隊norchain.io強烈地感受到了這種限制。在社區(qū)的幫助下,我們開始嘗試4階段工作流程,這大大提高了開發(fā)效率。

四步流程法

這個工作流程的四個階段是:編輯、調試、私人測試以及Beta測試。主要的想法是:

  1. 利用一些新工具將編碼階段拆分成編碼階段調試階段。在調試階段,我們盡可能多地跳過或運行本地測試案例,就像傳統(tǒng)軟件項目那樣,而不與區(qū)塊鏈進行交互。

  2. 測試階段拆分為私人測試Beta測試,分別使用privateNet / NeoCompiler Eco進行私人測試以及公共測試網絡進行beta測試。 使用這種方法,我們以最小的代價確保最大程度上的靈活性和兼容性。

開發(fā)NEO智能合約的流程是什么

與下表相比,我們可以相應看到Neo-Debugger和Neunity.Adapter的優(yōu)勢。根據我們的經驗,Neo-Debugger更適合小規(guī)模項目,因為它不消耗GAS,而Neunity.Adapter更適合較大規(guī)?;蚋鼜碗s的項目,因為它更好地支持TDD,多類,斷點,變量跟蹤等。

Neunity的設計實踐了大規(guī)模軟件的項目方法學(我指的是系統(tǒng)邏輯的規(guī)模,并不意味著單個調用必須復雜或者昂貴的)。通過適配器層的使用邁出了縮小.Net開發(fā)者和NEO開發(fā)者之間差距的重要的一步。與此同時,Neunity還提供了一個Neunity.Tools層,它具有靈活的序列化工具(NuSD),類HTTP的通信協(xié)議(NuTP),類URI的存儲管理器(NuIO)等。我們希望能夠助力更多的NEO區(qū)塊鏈Dapps的落地。

私人測試

通過迭代編碼和調試階段完成邏輯后,我們可以轉到私人測試階段并開始與區(qū)塊鏈進行交互。我們建議使用私人測試網絡或NeoCompiler Eco進行私人測試,因為它們的環(huán)境簡單且易于交互和管理。

NeoResearch公司開發(fā)的NeoCompiler Eco公共測試網絡是新的、特殊的。它不需要使用GAS,同時提供了一整套基于Web的GUI工具,包括編譯,導入OpCode,部署,調用,交易,轉換等.NeoResearch最近還集成了gitter.im用于即時聊天,以便更好地與開發(fā)者溝通。 Igor有一個很好的教程來介紹它的基本功能。

這個測試網絡的另一個優(yōu)點是,區(qū)塊生成的時間間隔是5-7秒,幾乎比正常情況快5倍。它縮短了等待時間,幾乎不會出現(xiàn)開發(fā)者在同一個區(qū)塊發(fā)生調用沖突的情況,這使得測試幾乎與私人測試網絡一樣簡單。這就是為什么我們建議將其視為私人測試選項的原因。

Beta測試

如果成功完成了在私人測試階段的所有功能測試,我們就可以進入最后的一個階段,之后就可上線Dapp。 公共測試網絡是最適合于Beta測試的地方,因為它類似于主網環(huán)境。 另一個好處是你還可以邀請你的朋友來幫忙測試。 你的智能合約還要能沉著地面對來自并行調用、潛在盲區(qū)或者無效輸入等的挑戰(zhàn)。

以上就是“開發(fā)NEO智能合約的流程是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前題目:開發(fā)NEO智能合約的流程是什么
URL鏈接:http://muchs.cn/article12/iidedc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站改版、企業(yè)網站制作域名注冊、網站導航、手機網站建設自適應網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化