1. 程式人生 > >Eth 部署智慧合約

Eth 部署智慧合約

首先要開發以太坊的智慧合約,需要EVM(以太坊虛擬機器),也就是需要執行的環境,我們可以通過 geth 來設定開發環境:

geth --datadir testNet --dev console 2>> test.log

命令引數說明(更多命令詳解可閱讀Geth命令用法-引數詳解篇):
–dev 啟用開發者網路(模式),開發者網路會使用POA共識,預設預分配一個開發者賬戶並且會自動開啟挖礦。
–datadir 後面的引數是區塊資料及祕鑰存放目錄。
第一次輸入命令後,它會放在當前目錄下新建一個testNet目錄來存放資料。
console 進入控制檯
2>> test.log

表示把控制檯日誌輸出到test.log檔案

然後就進入了以太坊客戶端 console 介面。

在 console 裡,你可以通過相關命令來建立賬戶、挖礦、轉賬、檢視區塊高度等。

接著,建立智慧合約:

pragma solidity >=0.4.22 <0.6.0;
contract man {
    uint amount;
    
    constructor(uint i) public {
        amount = i;
    }
    
    function say(uint s) public returns (uint) {
        amount 
+= s; return amount; } }

可以在 remix (線上 solidity 編譯器)編譯你的程式碼

選擇編譯器版本,然後編譯,再點選 detail ,彈出詳細資訊,

將文字複製起來,修改其中的變數,from 地址等,然後在 geth console 中輸入,則部署成功

執行合約,發現error

解決方式:

eth.defaultAccount=eth.coinbase;