1. 程式人生 > >Win10 go-ethereum的安裝配置與基本使用教程

Win10 go-ethereum的安裝配置與基本使用教程

go-ethereum

go-ethereum是以太坊的客戶端之一,是一個基於Go語言的客戶端。以太坊還有別的客戶端包括C++,JavaScript,python,Java等,比較常用的就是Go語言實現的客戶端geth (go-ethereum),其他常用的還有一個叫testrpc的工具, 它使用了Python客戶端pyethereum。

Win10配置:

1.開啟Powershell,win10自帶,win7版本需要去微軟官方下載補丁,是一個類似於Python pip的包管理裝置,並需要以管理員身份執行:

2.設定Get-ExecutionPolicy可用,PowerShell中輸入:

set-ExecutionPolicy RemoteSigned

3.安裝Chocolatey,這是一個第三方的包管理器,官方網址:https://chocolatey.org/

iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
4.環境準備,先安裝Go語言等前置環境:
C:\Windows\system32> choco install git
C:\Windows\system32> choco install golang
C:\Windows\system32> choco install mingw
5.建立工作環境,及克隆源:
C:\Users\xxx> set "GOPATH=%USERPROFILE%"
C:\Users\xxx> set "Path=%USERPROFILE%\bin;%Path%"
C:\Users\xxx> setx GOPATH "%GOPATH%"
C:\Users\xxx> setx Path "%Path%"
C:\Users\xxx> mkdir src\github.com\ethereum
C:\Users\xxx> git clone https://github.com/ethereum/go-ethereum src\github.com\ethereum\go-ethereum
C:\Users\xxx> cd src\github.com\ethereum\go-ethereum
C:\Users\xxx> go get -u -v golang.org/x/net/context
6.安裝geth:
C:\Users\xxx\src\github.com\ethereum\go-ethereum> go install -v ./...

PS:本人配置的時候,不知為何,配置完成後將我原先就有的Python環境完全移除了,也是莫名其妙,這裡有Python環境的人要注意下。

Geth:

以開發者的角度,介紹下基本用法:

建立測試用私有鏈:

1.首先,將自定義的創始區塊放入

C:\Users\XXX:

目錄下,創始區塊必須是.json檔案,檔名可自定,這裡設定為piccgenesis.json,檔案內容如下:

{

    "nonce":"0x0000000000000042",

    "mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",

    "difficulty": "0x4000",

    "alloc": {},

    "coinbase":"0x0000000000000000000000000000000000000000",

    "timestamp": "0x00",

    "parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",

    "extraData": "PICC GenesisBlock",

    "gasLimit":"0xffffffff"

}

2.初始化一條私有鏈:

geth --datadir "%cd%\chain" init piccgenesis.json
3.執行並進入該私有鏈的控制檯:
geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --datadir "%cd%\chain" --port "30303"  --rpcapi "db,eth,net,web3" --networkid 95518 console

控制檯基本操作:

1.查詢賬戶:

eth.accounts
2.建立賬戶,密碼為“123456”:
personal.newAccount('123456')
3.賬戶賦值給變數:
user1 =eth.accounts[0]
4.查詢賬戶餘額:
eth.getBalance(user1)
5.顯示當前區塊:
eth.blockNumber
6.開始挖礦(預設第一個賬戶得到挖礦收益):
miner.start()
7.停止挖礦:
miner.stop()
8.解鎖賬戶(獲得賬戶使用權):
personal.unlockAccount(user1, "123456")
9.user1轉賬3以太幣給user2:
eth.sendTransaction({from: user1, to: user2, value: web3.toWei(3,"ether")})