Win10 go-ethereum的安裝配置與基本使用教程
阿新 • • 發佈:2018-12-22
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.建立工作環境,及克隆源:
6.安裝geth: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
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")})