使用Nethereum連接.NET和以太網區塊鏈智能合約

胡家維 Hu Kenneth
My blockchain development Journey
13 min readAug 29, 2019

--

.NET是獨立和企業開發人員都喜歡的古老框架。選擇各種語言以及部署到從移動設備到服務器的各種平台的能力使.NET成為各種應用程序的絕佳選擇。雖然.NET做了很多,但它並沒有做任何事情。例如,無法編寫客戶端代碼以在.NET中的瀏覽器中運行(除非您使用Silverlight …),目前還沒有.NET支持的語言使開發人員能夠編寫智能合約。

智能合約的首選語言是Solidity。 Solidity是一種專門構建的語言,它承擔了運行它的環境的許多事情,它幾乎與區塊鏈技術相結合。這些假設反過來排除了其他語言。

智能合約本身雖然只是故事的一半。要使應用程序完整,智能合約需要通過RPC來調用它們。這就是Web3客戶端的用途. Web3客戶端只是提供客戶端界面,它使客戶端應用程序能夠與在以太坊上運行的智能合約進行交互,因此只要給定一個程式語言,它就可以與以太坊交互。

對於.NET來說,以太坊區塊鏈唯一的選擇是Nethereum。 (Nethereum是.NET和以太坊的混合體)。此庫試圖複製Web3.js以此提供相同功能,這些功能可用於JavaScript應用程序,就如在瀏覽器和NodeJS中運行的應用程序一樣。

在本教程中,我們將智能合約部署到Ganache,然後使用.NET核心創建一個簡單的.NET應用程序以與智能合約進行交互。

創建和部署智能合約

  1. 下載並安裝Ganache。 Ganache是​​一個用於進行以太坊開發的個人區塊鏈。
  2. 在終端(terminal),命令提示符(command prompt)或Powershell中,安裝Truffle。 Truffle是一個框架和一組實用程序,有助於促進智能合約的Solidity開發。 NPM需要完成這些命令。

npm install -g truffle

3. 創建一個文件夾並在該文件夾中運行truffle init .

truffle init

4. Truffle將創建一些新文件夾:contracttestmigration。在合同文件夾中,在contracts資料夾中創建一個名為Vote.sol的新文件。

5. 將以下代碼粘貼到新創建的Vote.sol中並保存文件。該合同只追踪2名候選人的投票數。合同使用郵件發件人(即帳戶地址)作為投票人。每個帳戶只允許1票。

pragma solidity ^0.5.0;  
contract Vote {
uint public candidate1;
uint public candidate2;
mapping…

--

--

胡家維 Hu Kenneth
My blockchain development Journey

撰寫任何事情,O型水瓶混魔羯,咖啡愛好者,Full stack/blockchain Web3 developer,Founder of Blockchain&Dapps meetup ,Udemy teacher。 My Linktree: https://linktr.ee/kennethhutw