今天我們來實作第一個智能合約看看

首先,要發布智能合約一定就要就要有區塊鏈,我們也不可能直接就真金白銀把合約部署到真實世界的鏈上面,所以我們需要一個開發環境的區塊鏈,那就是:

Granache-mark Granache

Granache 是一個有gui,而且 可以快速啟動的一個本機區塊鏈服務。先依據你的作業選擇安裝。打開會進入,預設會開啟10個帳號可以讓你測試使用

預設要開幾個帳號,每個帳號多少錢,這都可以在設定裏面去做設定。

再來有區塊鏈環境,接下來就是要能夠編寫跟 complie 的 ide 了。就是

remix

remix 是可以線上開發 solidity的ide,如果要搭配本機 Granache 做開發的話,要改用 http 連入喔,下面有額外說明。

打開 remix 後,先去設定你的部署的區塊鏈,選擇web3 provider, Granache 預設 port 會開在 7545 ,所以只要把web3 provider endpoint 填入http://127.0.0.1:7545,這樣就可以了。如下圖所示

因為瀏覽器的安全性設定,https 不能直接連到 http,本機的區塊鏈服務應該不會有人特別上 ssl,所以這種情況下,瀏覽器必須要選擇用 http 進入,也就是 http://remix.ethereum.org,不然你會無法根本機的區塊鏈做連結。 或是去它官方 https://github.com/ethereum/remix-project,也有提供本機安裝服務,這樣就能在本機環境啟動 remix ide。

remix-web3-provider

再來去工作區,新增一個helloworld.sol點的檔案

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;

contract HelloWorld {
    string public world = "helloworld";
    function hi() public view returns (string memory){

        return world;
    }
}

語法我們後面章節再來逐一介紹

新增完後,就可以直接按 compile,最後去上面設定 web3 provider 的地方,選擇 deploy,畫面上再切回 Granache ,去上面選單列的 transactions,就會看到如下圖

first-granache

由上圖也能看到第二列 current block 也由0 變成 1了。這樣就完成了第一個 smart constract 的部署。