《區塊鏈DAPP開發入門、代碼實現、場景應用》筆記4——Ethereum Wallet中部署合約
賬號創建完成之后,賬號余額是0,但是部署合約是需要消耗GAS的,因此需要獲取一定的以太幣才能夠繼續本次實現。在測試網中獲取以太幣可以通過挖礦的方式,在開發菜單中可以選擇打開挖礦模式,但是這需要將Syn Mode模式修改為Full,這意味著需要將測試網的全部區塊數據同步下來才可以進行挖礦,這些數據非常大且同步緩慢,因此建議采用第2種方案:到以太坊基金會申請以太幣,讀者可以自行搜索“獲取測試網以太坊幣”,會有相關的網址獲取以太幣,一般需要輸入讀者自己的測試環境以太坊賬號。
(1)本節使用的代碼案例需要2個以上的以太坊賬號,請讀者申請創建2個賬號并分別申請測試用的ETH代幣。成功創建賬號并獲取以太幣之后,就可以開始部署智能合約的操作了,如圖2.13所示,選擇 COTRACT->DEPLOY NEW CONTRACT。

圖2.13 智能合約tab頁面
(2)將上一章用的Coin合約代碼復制粘貼到圖2.14中3的區域,其中1表示賬號用于部署該合約的賬號,對應于Coin構造函數的msg.sender這個內容。區域2表示給當前的智能合約轉賬多少,單位是以太幣的個數。4表示該合約代碼存在編譯錯誤,需要修改。
圖2.14智能合約代碼輸入
(3)稍作修改之后,代碼編譯通過。在代碼的右側,是一個下拉選項,選項中有智能合約的名稱列表,此示例中僅有Coin一個智能合約,選中此合約,在合約代碼的下方有GAS費用調節的滑塊和DEPLOY按鈕。GAS費用前面講到過,付出越高的GAS費用,被礦工選中打包成區塊的概率也越高,如圖2.15所示,此示例中我們選中默認GAS數量,然后點擊DEPLOY按鈕。

圖2.15選擇智能合約名稱并修改GAS費用
(4)點擊部署合約之后,以太坊錢包會彈出交易轉賬密碼輸入的對話框,此密碼即為秘鑰的加密密碼,通過輸入密碼,以太坊錢包動態的解密私鑰,通過私鑰對交易進行簽名,然后廣播到以太坊網絡中,該交易會加入到交易池中并顯示為pending狀態。礦工會選擇該交易并將智能合約運行來修改以太坊狀態機的狀態。修改成功之后,將產生的新狀態以及交易收據、永久存儲數據、余額等信息寫入到以太坊,并將所有數據打包進新的區塊。
(5)正確輸入密碼并SEND TRASACTION之后,以太坊錢包會進入等待以太坊網絡礦機打包的過程中,圖2.16就是正在等待交易被打包,該交易是一個Create Contract的操作。交易被成功打包到新的區塊之后,會生成關于該交易的很多索引信息,如圖2.17所示。

圖2.16輸入密碼,支付費用以便部署智能合約

圖2.17交易等待打包的狀態提示
(6)圖2.18中,1是交易的hash值,點擊該鏈接可以打開區塊鏈瀏覽器,查看關于該交易的更多詳細信息;2是區塊打包的時間;3表示該交易設計的轉賬金額,本示例只是創建合約,并沒有轉移以太幣;4是發起改交易的以太坊賬戶,點擊該選項可以打開區塊鏈瀏覽器,查看關于該賬戶的所有交易記錄,任何有人都可以查到這些信息,因此區塊鏈是透明公開的;5表示該交易的目的地址,創建智能合約時改地址是空;6、7、8表示執行該交易消耗的以太坊代幣數量、GAS數量和GAS的價格,這些是該交易的交易手續費,是給以太坊礦工的激勵,當然目前使用的是以太坊測試網,該網絡的以太幣并沒有兌換價值;9表示該交易所在的區塊高度,點擊鏈接可以進入區塊鏈瀏覽器查看該區塊的其它信息。
圖2.18創建智能合約產生的交易信息
(7)如圖2.19所示,點擊交易hash值之后瀏覽器打開的區塊鏈瀏覽器信息,讀者可以自行點擊其它信息。該瀏覽器是第三方開發,與區塊鏈錢包類似,任何人和機構都可以開發錢包和瀏覽器,以太坊的數據是無主的,去中心化的,任何人都可以開發軟件來訪問以太坊區塊鏈上的交易數據,這就是區塊鏈公開透明的魅力。同時因為加密學的應用,即使所有數據對所有人公開,代碼和規則也公開,也無法通過篡改數據的方式來破壞區塊鏈網絡,或者通過作惡的方式來獲取區塊鏈上的數字貨幣,這就為區塊鏈的創新應用提供了技術支持。

圖2.19 以太坊區塊鏈瀏覽器
(8)如圖2.20所示,當交易打包完成之后,回到CONTRACTS頁下面,可以看到剛剛創建的智能合約顯示在了界面中。點擊該智能合約,進入下一環節,調試智能合約。

圖2.20 合約創建成功之后的界面
2020區塊鏈各種應用都上馬了,跟我一起學《區塊鏈DAPP開發入門、代碼實現、場景應用》吧。


浙公網安備 33010602011771號