日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

针对.NET开发者(neo-charm) 1.0 的NEO区块链架构参考模型

發布時間:2024/1/17 asp.net 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 针对.NET开发者(neo-charm) 1.0 的NEO区块链架构参考模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

針對.NET開發者的NEO區塊鏈文檔

宗旨

本文檔旨在記錄NEO 區塊鏈平臺的(軟件)體系架構參考模型,以使.NET開發人員能夠更快速,更輕松地了解NEO平臺。

目標

  • 記錄NEO區塊鏈平臺的(軟件)體系架構參考模型
  • 使.NET開發人員能夠更快速,更快速輕松地了解更多有關NEO平臺的知識。

原則

  • 提供可靠的文件:及時,準確,直觀和完整
  • 盡可能節省一個人的時間

驅動因素

  • NEO .NET開發者社區需要具有簡明易懂的文檔,以便人們能夠在盡可能短的時間內加快開發NEO智能合約。

針對以太坊智能合約開發者的旁注

如果您來自ETH開發背景,那么你會習慣于將智能合約(在將其部署到區塊鏈之后)像C ++ / C#類的實例一樣考慮,并且您可以調用任何合約的公共方法和字段。

在NEO智能合約開發中,大多數人遵循通過公共Main()函數調用智能合約的模式。使用這種模式,NEO智能合約更像.NET / C#控制臺應用程序,操作環境調用函數Main并將參數傳遞給函數(打比方說像命令行參數)。這將會演化,但目前這是一種常見模式。下面是一個來自neo-project/examples-csharp項目的例子:

publicstaticobject Main(string operation, params object[] args)

{

switch (operation)

{

case”query”:

return Query((string)args[0]);

case”register”:

return Register((string)args[0], (byte[])args[1]);

case”transfer”:

return Transfer((string)args[0], (byte[])args[1]);

case”delete”:

return Delete((string)args[0]);

default:

returnfalse;

}

}

注意:在NEO智能合約中,一個類中的公共字段不會自動可見/可調用,除非您專門編寫了自己的一些訪問器代碼。

注:小心使用NEO智能合約中的C#開關語句[TODO]。

動機

當你正在學習編寫NEO智能合約時,你真的在學習如何編程NEO虛擬機來做你想做的事情;例如,

  • 進行計算
  • 從區塊鏈中讀取持久數據(狀態)
  • 將新數據(狀態)添加到區塊鏈
  • 驗證某人的身份(反過來,確定他們對于您的智能合約的目的和目標擁有哪些角色和權限)
  • 等等。

作為一個類比,學習編程NEO虛擬機就像學習飛行一個飛行模擬器。

圖1.蘇霍伊超音速噴氣式飛機全飛行模擬器[圖片來源:Wikipedia] 復制代碼

在飛行模擬器駕駛艙中,飛行員正在操縱控制器(腳踏板,開關和旋鈕以及控制柱),模擬器反過來接收這些刺激并導致多個子系統響應并產生您正在控制一架先進的飛機的幻覺。負責制造這些幻想的子系統包括視覺顯示器,音頻提示和音效,液壓執行器,刻度盤和其他儀器。

在NEO虛擬機中運行的NEO智能合約就像飛行模擬器控制的飛行員。智能合約執行各種計算并調用各種虛擬機API來完成智能合約的目的和目標。為了響應這些API調用,虛擬機正在與其各個子系統進行交互(就像飛行模擬器一樣)。在NEO虛擬機的情況下,這些子系統包括:

  • 帳戶管理
  • 資產管理
  • 區塊管理
  • 區塊鏈管理
  • 合約管理
  • 區塊頭管理
  • 運行時間管理
  • 存儲管理
  • 交易管理
  • 屬性管理
  • 輸入管理
  • 輸出管理
  • 驗證管理

…除了基本的執行引擎功能,如:

  • 流量控制
  • 堆棧操作(包括參數傳遞)
  • 位操作
  • 算術運算
  • 邏輯運算
  • 數據類型轉換
  • 密碼操作
  • 等等

作為智能合約開發人員,你有責任了解和理解每個虛擬機子系統的用途和目標,他們支持的用例以及開發一流智能合約時使用的最佳實踐和編程模式。

NEO區塊鏈架構參考模式(ARM)

下圖描述了NEO區塊鏈的架構參考模型(ARM)。它由兩個主要組成部分組成:

?NEO開發者環境

?NEO虛擬機

圖2. NEO區塊鏈架構參考模型

NEO開發者環境

下圖說明了從開發者角度來看NEO環境的架構。該圖受到了Relfos / neo-debugger-tools項目的啟發。

圖3 NEO開發者環境

下面表格描述了NEO開發者環境的關鍵組成部分。

標記名字描述
AHelloWorld.cs智能合約資源(例子)
Bcsc.exeC#編譯器
CHelloWorld.dll智能合約編譯程序集 (MSIL)
Dneon.exeNEO轉譯器 (調試器版本)
EHelloWorld.avm虛擬機腳本文件 (字節代碼腳本)
Fneo-gui (開發者)智能合約部署和測試工具
VVisual StudioMicrosoft .NET/C# IDE
Wneo-調試器交互式源代碼和字節代碼級調試器

表1. NEO開發者環境

NEO虛擬機

NEO虛擬機(NEO VM)的架構如下圖所示。

圖4. NEO虛擬機機構

下列圖標描述了NEO虛擬機的關鍵組成部分

標記
名字描述
NEO虛擬機虛擬機主要部件和服務
執行引擎執行引擎部件
當前語境執行引擎當前語境
指令指針執行引擎當前指令指針
腳本當前智能合約腳本正在執行
執行堆棧執行引擎數據堆棧
虛擬機狀態虛擬機檔期狀態(暫停,故障,中斷)
腳本表可調用腳本的虛擬機腳本表
互操作服務互操作服務層用于不是基本執行引擎功能之一的所有內容(請參閱上文)
賬戶服務賬戶服務
資產服務資產服務
區塊服務區塊服務
區塊鏈服務,區塊頭服務區塊鏈服務,區塊頭服務
合約服務 合約服務
運行時間服務運行時間服務
存儲服務存儲服務
驗證器服務 驗證器服務
區塊鏈狀態分布式賬本

NEO .NET命名空間

NEO .NET名稱空間如下所示。

圖5. NEO區塊鏈架構參考模型(.NET名稱空間)

參考

  • [NEONAMESPACE] NEO Project, NEO Namespace from docs.neo.org/en-us/sc/ap…
  • [NEOSCAPI] NEO Project, Smart Contract API Reference from docs.neo.org/en-us/sc/ap…
  • [NEONODEINTRO] NEO Project, NEO node introduction from docs.neo.org/en-us/node/…
  • [NEOBUGGER] Relfos, Relfos/neo-debugger-tools from github.com/Relfos/neo-…

其它好資源

  • [NEORPCSHARPCLIENT] City of Zion, Neo-RPC-SharpClient from github.com/CityOfZion/…

原文轉自NEL新經濟實驗室:mp.weixin.qq.com/s/yxrGe2elm…

進群交流:795681763


總結

以上是生活随笔為你收集整理的针对.NET开发者(neo-charm) 1.0 的NEO区块链架构参考模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。