oneleo avatar

(實作)在 Windows 10 上使用 Golang 存取以太坊 Rinkeby 測試網

oneleo

Published: 26 Jun 2018 › Updated: 26 Jun 2018(實作)在 Windows 10 上使用 Golang 存取以太坊 Rinkeby 測試網

(實作)在 Windows 10 上使用 Golang 存取以太坊 Rinkeby 測試網

0、在 Windows 上安裝 go-ethereum 環境,可參考:
https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum

1、安裝 Git for Windows
下載位址:
https://git-scm.com/downloads

2、安裝 Golang 程式語言:
下載位置:
https://golang.org/dl/

(1)點選【Next】

(2)點選【Next】

(3)點選【Next】

(4)點選【Install】

(5)點選【Finish】

(6)設定 Windows 環境變數(下方指令為腳本,環境變數請至「控制台」→「系統及安全性」→「系統」→「進階系統設定」→「進階」標籤→「環境變數(N)...」→在「XXX 的使用者變數」內新增、編輯)

> set GOROOT="C:\go"
> set GOPATH="%USERPROFILE%\go"
> set GOBIN="%USERPROFILE%\go\bin"
> set PATH="%PATH%;%GOROOT%\bin;%GOBIN%"

2、安裝 MinGW-64(這邊以安裝 msys2-x86_64_20180531.exe 至 C:\msys64 為例)

下載位置:
http://www.msys2.org/

參考:
https://shaochien.gitbooks.io/how-to-use-gcc-to-develop-c-cpp-on-windows/content/shell-select-and-install-gcc.html
https://cwchen.tw/windows-survival/mingw-msys/
https://labs.mediatek.com/zh-tw/faq/FAQ18854

(1)點選【Next】

(2)點選【Next】

(3)點選【Next】

(4)點選【Finish】

(5)此時會自動開啟一個 MSYS 視窗,輸入下方指令更新核心軟體:

$ pacman -Syu --noconfirm

(6)出現「close your terminal window instead of calling exit」訊息,關閉目前的 MSYS 視窗

(7)在【開始】→【MSYS2 64bit】→【MSYS2 MSYS】來啟動 MSYS 視窗

(8)再次輸入下方指令更新核心及其他軟體

$ pacman -Syu --noconfirm
$ pacman -Su --noconfirm

(9)可以使用下方指令搜尋可安裝的 gcc 套件:

$ pacman -Ss gcc
$ pacman -Sl | grep gcc

註:將會看到 msys2 的 gcc 套件有三種類可選,這邊以安裝 Mingw64 版的 gcc:

  • mingw-w64-i686:32 位元套件 (mingw32)
  • mingw-w64-x86_64:64 位元套件 (mingw64)
  • 無字首:僅用於 msys 環境中 (msys)

(5)安裝 gcc、make

$ pacman -S mingw-w64-x86_64-gcc make --noconfirm

(6)MSYS2 會將 gcc 可執行檔放在「C:\msys64\mingw64\bin」內,make 可執行檔會放在「C:\msys64\usr\bin」內。

(7)設定 Windows 環境變數(下方指令為腳本,環境變數請至「控制台」→「系統及安全性」→「系統」→「進階系統設定」→「進階」標籤→「環境變數(N)...」→在「XXX 的使用者變數」內新增、編輯)

> set MINGW64="C:\msys64\mingw64"
> set MSYS64USR="C:\msys64\usr"
> set PATH="%PATH%;%MINGW64%\bin;%MSYS64USR%\bin"

(8)在命令提示字元(C:\WINDOWS\system32\cmd.exe)內輸入下列指令測試 gcc、make 是否有安裝成功

> gcc -v
> make -v

4、安裝 Visual Studio Code 整合編譯環境
https://code.visualstudio.com/download

5、安裝 Go Extension for Visual Studio Code

套件介紹頁面:
https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go

(1)在【礦充功能】頁面下搜尋【go】關鍵字 → 點選【安裝】→【重新啟動】

(2)點選【Ctrl + Shift + P】→ 輸入【Go: Install/Update tools】→【Enter】來安裝 Go Extension for Visual Studio Code 需要的 go 套件

註:要看到「All tools successfully installed. You're ready to Go :).」訊息才算安裝完成

6、安裝 dotNET SDK for Visual Studio Code(可選,非必要)
https://www.microsoft.com/net/learn/get-started/windows#windowscmd

7、在命令提示字元(C:\WINDOWS\system32\cmd.exe)內輸入下列指令來安裝 go-ethereum 編譯環境

> go get -u -v golang.org/x/net/context
> go get -u -v github.com/ethereum/go-ethereum
> cd %GOBIN%\..\src\github.com\ethereum\go-ethereum
> go install -v ./cmd/...

8-1、(使用命令提示字元(C:\WINDOWS\system32\cmd.exe))使用 go 語言連接至以太坊測試網路

(1)建立一資料夾後編輯 %GOBIN%..\src\go-ethereum-test\test\client.go 檔

> md %GOBIN%\..\src\go-ethereum-test\test
> code %GOBIN%\..\src\go-ethereum-test\test\client.go

(2)使用 Visual Studio Code 編輯【client.go】檔,其內容如下

package main

import (
        "fmt"
        "github.com/ethereum/go-ethereum/ethclient"
        "log"
)

func main() {
        //client, err := ethclient.Dial("https://mainnet.infura.io")
        client, err := ethclient.Dial("https://rinkeby.infura.io")
        if err != nil {
                log.Fatal(err)
        }
        fmt.Println("we have a connection")
        _ = client
}

(2)編譯 %GOBIN%..\src\go-ethereum-test\test\client.go 後執行,確認可順利連至以太坊測試網路

> go install go-ethereum-test\test
> test

//-------------------------Content-------------------------
we have a connection
//-------------------------Content-------------------------

8-2、(使用 Visual Studio Code)使用 go 語言連接至以太坊測試網路

(1)建立資料夾「%GOBIN%..\src\go-ethereum-test\test」,並在其內使用 Visual Studio Code 開啟。

(2)新增【client.go】檔,其內容如下

package main

import (
        "fmt"
        "github.com/ethereum/go-ethereum/ethclient"
        "log"
)

func main() {
        //client, err := ethclient.Dial("https://mainnet.infura.io")
        client, err := ethclient.Dial("https://rinkeby.infura.io")
        if err != nil {
                log.Fatal(err)
        }
        fmt.Println("we have a connection")
        _ = client
}

(3)點選【偵錯 Debug】→【啟動偵錯 Start Debugging(F5)】即可開始編譯並在下方看到執行結果。

註:未來可以直接按【F5】鍵來進行「啟動偵錯 Start Debugging」


Donate ADA:
DdzFFzCqrhsup2Q4nnhKJJZ5BRuPkYUSPqDJn72t2dtHtVqsz5kQQmopMQR16Sv9qS5NC4w8Kv5P8XrDH2n2FD2akxtrntjc8hbgAmTz

Leave (實作)在 Windows 10 上使用 Golang 存取以太坊 Rinkeby 測試網 to:

Written by

Read more #go posts


Best Posts From oneleo

We have not curated any of oneleo's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oneleo