go-ethereum是以太坊的客戶端之一,是一個基于Go語言的客戶端。以太坊還有別的客戶端包括C++,javaScript,python,Java等,比較常用的就是Go語言實現(xiàn)的客戶端geth (go-ethereum),其他常用的還有一個叫testrpc的工具, 它使用了Python客戶端pyethereum。
1.打開Powershell,win10自帶,Win7版本需要去微軟官方下載補丁,是一個類似于Python pip的包管理裝置,并需要以管理員身份運行:

2.設(shè)置Get-ExecutionPolicy可用,PowerShell中輸入:
set-ExecutionPolicy RemoteSigned3.安裝Chocolatey,這是一個第三方的包管理器,官方網(wǎng)址:https://chocolatey.org/
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex4.環(huán)境準(zhǔn)備,先安裝Go語言等前置環(huán)境:C:/Windows/system32> choco install gitC:/Windows/system32> choco install golangC:/Windows/system32> choco install mingw5.創(chuàng)建工作環(huán)境,及克隆源: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/ethereumC:/Users/xxx> git clone https://github.com/ethereum/go-ethereum src/github.com/ethereum/go-ethereumC:/Users/xxx> cd src/github.com/ethereum/go-ethereumC:/Users/xxx> go get -u -v golang.org/x/net/context6.安裝geth:C:/Users/xxx/src/github.com/ethereum/go-ethereum> go install -v ./...PS:本人配置的時候,不知為何,配置完成后將我原先就有的Python環(huán)境完全移除了,也是莫名其妙,這里有Python環(huán)境的人要注意下。
Geth:
以開發(fā)者的角度,介紹下基本用法:
創(chuàng)建測試用私有鏈:
1.首先,將自定義的創(chuàng)始區(qū)塊放入
C:/Users/XXX:目錄下,創(chuàng)始區(qū)塊必須是.json文件,文件名可自定,這里設(shè)置為piccgenesis.json,文件內(nèi)容如下:
{ "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.json3.運行并進入該私有鏈的控制臺:geth --identity "PICCetherum" --rpc --rpccorsdomain "*" --datadir "%cd%/chain" --port "30303" --rpcapi "db,eth,net,web3" --networkid 95518 console控制臺基本操作:
1.查詢賬戶:
eth.accounts2.創(chuàng)建賬戶,密碼為“123456”:personal.newAccount('123456')3.賬戶賦值給變量:user1 =eth.accounts[0]4.查詢賬戶余額:eth.getBalance(user1)5.顯示當(dāng)前區(qū)塊:eth.blockNumber6.開始挖礦(默認第一個賬戶得到挖礦收益):miner.start()7.停止挖礦:miner.stop()8.解鎖賬戶(獲得賬戶使用權(quán)):personal.unlockAccount(user1, "123456")9.user1轉(zhuǎn)賬3以太幣給user2:eth.sendTransaction({from: user1, to: user2, value: web3.toWei(3,"ether")})
新聞熱點
疑難解答