go語言區(qū)塊鏈學習調(diào)用以太坊
geth
以太坊智能合約開發(fā)中最常用的命令行工具。
Geth
是由以太坊基金會提供的官方客戶端軟件,用Go
編程語言編寫的。Geth
提供了一個交互式命令控制臺,通過命令控制臺中包含了以太坊的各種功能(API)。全名go-ethereum
。
1. geth 簡介
1.1 下載地址:
官網(wǎng)(很慢):https://geth.ethereum.org/downloads/
國內(nèi)鏡像:https://ethfans.org/wikis/Ethereum-Geth-Mirror
1.2 安裝:
下載下來之后,會在安裝目錄生成geth.exe
將這個文件放在gopath
的bin目錄中,
放在這里就行了
1.3 查看是否安裝成功
geth version
如果你安裝了,但是沒有顯示這個的話,可能是因為你的系統(tǒng)環(huán)境里面沒有g(shù)o的路徑,把go的bin目錄路徑放在系統(tǒng)變量的path就好了~
2. geth命令介紹
geth -help
查看幫助
命 令:geth [選項] 命令 [命令選項] [參數(shù)…]
命令參數(shù)介紹:超詳細
3. geth常用命令
3.1 指定數(shù)據(jù)目錄 --datadir
如:geth --datadir “路徑” account new
3.2 賬戶相關(guān)
查看賬戶:geth account list
查看賬戶的信息
創(chuàng)建賬戶:geth account new
然后輸入兩次密碼
更新指定賬戶:geth account update "用戶地址"
輸入賬戶密碼及確認密碼
默認是會把用戶的賬戶信息存放在這個目錄
導(dǎo)入賬戶:geth account import 你的私鑰文件路徑(導(dǎo)出私鑰存放到xx.txt)
指定保存路徑的創(chuàng)建用戶:geth --datadir account new
3.3 控制臺console:
啟動并進入交互式j(luò)avascript環(huán)境
默認連接的是ipc
geth attach http://IP:8545,默認不開啟
geth attach ws://IP:8546,默認不開啟
進入控制臺:geth console 可以指定--datadir "路徑"
退出控制臺:exit
或者 ctrl+d
常用api:
獲取區(qū)塊號:eth.blockNumber
是否在監(jiān)聽端口 net.listening
開始挖礦:miner.start()
- 挖礦還可以指定進程數(shù):miner.start(1)
- 停止挖礦:miner.stop()
- 檢查是否在挖礦:eth.mining true:在挖礦,false:不在挖礦
- 獲取賬戶地址數(shù)組:eth.accounts
- 獲取挖礦地址:eth.coinbase 默認第一個創(chuàng)建的賬戶
- 查看第一個賬戶余額:eth.getBalance(eth.accounts[0])
- 創(chuàng)建用戶:personal.newAccount(“12345678”)
- 設(shè)置挖礦賬戶:miner.setEtherbase(“地址A”)
- 賬戶間轉(zhuǎn)錢:eth.sendTransation({from:“地址A”,to:“地址B”,value:web3.toWei(10,“ether”)})
- 獲取交易信息:eth.getTransaction(‘地址A')
3.4 刪除數(shù)據(jù):
不要直接刪除datadir目錄,使用removedb
geth --datadir "路徑" removedb
這會刪除路徑/geth/chaindata,其他東西都不會動,不會刪除用戶。
3.5 help
geth account -hgeth account help new 查看子命令
3.6 常見錯誤
1 . Error: authentication needed: password or unlock undefined:
這種報錯解鎖下賬戶即可
賬戶解鎖:personal.unlockAccount(“賬戶地址”)
2 . Returned error: exceeds block gas limit:
出現(xiàn)這種錯誤就看塊號的gaslimit,部署時改成一直
獲取塊號:eth.blockNumber
根據(jù)塊號獲取詳細信息:eth.getBlock(0)
4. Go語言調(diào)用合約
4.1 啟動rpc端口
geth --datadir "fanone" --identity "fanone" --rpc --rpcport 8545 --rpcapi "db,eth,net,web3,personal" --rpccorsdomain "*" console
–identity
“fanone”:節(jié)點身份標識
–rpc
:開啟 RPC
接口
–rpcport
:RPC
端口,默認go是8545
–rpcapi
“db,eth,net,web3”:提供給別人使用的 RPC API,默認為web3
接口
–rpccorsdomain
:設(shè)置能連接到你的節(jié)點的 URL,用來完成RPC
任 務(wù)。* 指任何URL
都能連接到,默認只能自己連接
–datadir
:區(qū)塊數(shù)據(jù)文件夾 ,如果不指定的話,就是上面的那個在C盤的地址。
為了C盤著想,所以還是建議這樣,新建一個文件夾放在其他盤
就會在這里進行存放了
–networkid
:net_version
的id
–port
:用來監(jiān)聽其他節(jié)點的端口
–nodiscover
:你的節(jié)點不會被其他人發(fā)現(xiàn),除非他們手動添加你
是連接這個url
4.2 Go調(diào)用以太坊
相關(guān)文章
Golang使用Gin框架實現(xiàn)HTTP響應(yīng)格式統(tǒng)一處理
在gin框架中,我們可以定義一個中間件來處理統(tǒng)一的HTTP響應(yīng)格式,本文主要為大家介紹了具體是怎么定義實現(xiàn)這樣的中間件的,感興趣的小伙伴可以了解一下2023-07-07golang并發(fā)執(zhí)行的幾種方式小結(jié)
本文主要介紹了golang并發(fā)執(zhí)行的幾種方式小結(jié),主要包括了Channel,WaitGroup ,Context,使用這三種機制中的一種或者多種可以達到并發(fā)控制很好的效果,具有一定的參考價值,感興趣的可以了解一下2023-08-08搭建Go語言的ORM框架Gorm的具體步驟(從Java到go)
很多朋友不知道如何使用Goland軟件,搭建一個ORM框架GORM,今天小編給大家分享一篇教程關(guān)于搭建Go語言的ORM框架Gorm的具體步驟(從Java到go),感興趣的朋友跟隨小編一起學習下吧2022-09-09