您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何用Solidity編寫一個智能合約”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何用Solidity編寫一個智能合約”吧!
開始之前,您需要安裝的工具:
1. Ganache:這將是我們用來創建僅在我們的計算機上運行的私有區塊鏈的工具。鏈接:http://truffleframework.com/ganache/
2.MyEtherWallet副本,在這種情況下,URL托管的網站將不起作用。鏈接:https://github.com/kvhnuke/etherwallet/releases 注意:下載的版本是etherwallet-v3.xx.x.x.zip。
安裝完成后,我們開始訪問https://remix.ethereum.org/,打開這個網址后顯示如下:
這是Remix,一個Solidity語言的在線編譯器,我們將用此編譯器來編寫智能合約代碼。
第一次訪問該頁面時,我們需要將本文編輯器預加載的代碼刪除,并替換為如下內容:
這是我們counter的代碼。正如你所看到的,它有一個變量和三個函數。變量count是一個私有整數,這意味著它不能被合約以外的任何人訪問。第一個函數incrementCounter()通過遞增其值來改變或改變count的值。 第二個函數decrementCounter()通過遞減其值來改變count的值。第三個函數getCount()訪問count并將其值返回給任何函數。
當把counter的代碼粘貼到Remix時,它應該如下所示并自動編譯:
我們將保留該選項卡,以便稍后返回。 現在,打開Ganache,會顯示如下所示:
屏幕最上方所顯示“RPC” 服務器,我們一會兒需要用到它的信息。
現在,解壓MyEtherWallet,并打開文件夾。 然后,在瀏覽器中打開index.html文件便可看到如下圖所示。
在右上角,您可以看到一個關于以太坊網絡連接的下拉列表,默認情況下,它會連接到以太坊(ETH)主網。我們需要點擊下拉框選擇我們需要的網絡。
現在您可以輸入Ganache早些時候給我們提供的RPC服務器信息。 注意:您可以隨意命名節點。
MyEtherWallet現在通過Ganache連接到您的自托管區塊鏈。讓我們使用MyEtherWallet將Counter智能合約上傳到我們的區塊鏈。為此,我們在MyEtherWallet的頂部導航欄中點擊“Contracts”并選擇“Deploy Contract”。
正如您所看到的,MyEtherWallet向我們請求合約的字節碼。 要找到這個,我們將回到我們的Remix IDE并點擊“Details”按鈕。
您現在應該看到一個對話,其中包含有關我們的Counter合約的大量信息。
要復制字節碼,我們將點擊“BYTECODE”旁邊的剪貼板圖標。
然后,我們將回到MyEtherWallet并將字節碼粘貼到對話框中。
現在我們可以向下滾動并導入一個帳戶以上傳合約。幸運的是,Ganache給了我們5個地址,我們可以使用它與我們的私有區塊鏈進行交互。要使用其中一個上傳此合約,我們可以返回到Ganache并單擊任何地址的鑰匙圖標。
點擊鑰匙之后,它會向我們顯示與此帳戶關聯的私鑰。
我們復制此私鑰到MyEtherWallet。
現在,如果我們點擊“Unlock”,MyEtherWallet會詢問我們是否簽署這筆交易并部署我們的合約。我們執行它。
如果交易成功,那么Ganache將增加其“Current Block”值,并且我們用于部署合約的賬戶的交易計數也增加。
我們的合約現在已上傳到我們的區塊鏈! 要通過遞增和遞減counter與其交互,我們可以返回MyEtherWallet并選擇“Interact With Contract”。
MyEtherWallet現在要求我們新部署的合約所在的地址和我們合約的應用程序二進制接口(ABI)。要找到地址,我們可以回到Ganache并查看我們的交易記錄。
此頁面顯示我們之前在部署合約時創建的交易。正如你所看到的,Ganache告訴我們用來部署合約的地址,我們區塊鏈上的合約地址以及有關交易的更多信息。讓我們單擊事務,復制創建的合約地址,并將其粘貼到MyEtherWallet中。
剩下的就是我們需要的ABI。這是告訴MyEtherWallet如何與我們的合約進行交互。為了得到它,我們將回到Remix并點擊“INTERFACE - ABI”旁邊的剪貼板圖標將其復制。
現在我們可以回到MyEtherWallet,將ABI粘貼到文本框中,然后單擊“Access”按鈕。
真棒! 現在我們可以通過點擊“Select a function”下拉菜單與我們的合約進行交互。
成功運行!在更改計數值之前,我們的合約返回0。但是,我們還有另外兩個函數,incrementCounter()和decrementCounter()。我們來調用incrementCounter()來測試一下。我們將通過再次選擇函數下拉菜單,選擇incrementCounter并創建一個新的交易。
這只是增加了計數值。現在我們可以再次調用getCount()來確認值是否真的改變了。
正如你所看到的,count現在等于1! 所以,我們的incrementCount()函數成功運行。你可以嘗試調用decrementCount()函數,并且探索更多!
感謝各位的閱讀,以上就是“如何用Solidity編寫一個智能合約”的內容了,經過本文的學習后,相信大家對如何用Solidity編寫一個智能合約這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。