日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Geth安装和使用

發(fā)布時間:2024/3/26 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Geth安装和使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、簡介

Geth是Go Ethereum開源項(xiàng)目的簡稱,它是使用Go語言編寫且實(shí)現(xiàn)了Ethereum協(xié)議的客戶端軟件,也是目前用戶最多,使用最廣泛的客戶端。通過Geth客戶端與以太坊網(wǎng)絡(luò)進(jìn)行連接和交互可以實(shí)現(xiàn)賬戶管理、合約部署、挖礦等眾多有趣且實(shí)用的功能。

ganache也是客戶端,兩個都可以用來協(xié)助開發(fā)DAPP

下載地址:https://geth.ethereum.org/downloads/? ?下載后安裝即可

二、使用

1. 在某個磁盤創(chuàng)建一個數(shù)據(jù)存儲目錄如D:\testGeth,新建創(chuàng)世區(qū)塊描述文件genesis.json,內(nèi)容如下:

{

? "difficulty" : "0x20000",

? "extraData"? : "",

? "gasLimit"?? : "0x8000000",

? "alloc": {},

? "config": {

??????? "chainId": 15,

??????? "homesteadBlock": 0,

??????? "eip155Block": 0,

??????? "eip158Block": 0

??? }

}

genesis.json是創(chuàng)世區(qū)塊配置文件,通過此配置讓我們很容易挖礦以方便測試,具體每個字段的含義可暫時忽略!

2. 在命令行窗口進(jìn)入到D:\testGeth目錄下,執(zhí)行創(chuàng)世區(qū)塊的初始化,命令如下:

geth --datadir data init genesis.json

此時在testGeth目錄下會生成data目錄,data目錄又包含geth和keystore目錄,geth目錄存儲區(qū)塊數(shù)據(jù),keystore目錄則保存賬戶信息。命令執(zhí)行結(jié)果如下:

目錄如下:password中存儲的是兩個測試賬戶的密碼和private_blockchain_start.sh用于啟動geth客戶端,可以暫時不用管

3.? 啟動節(jié)點(diǎn)連接私有測試網(wǎng)絡(luò),命令行下輸入:

geth --datadir data --networkid 123 --nodiscover console

--networkid 123參數(shù)表示區(qū)塊鏈網(wǎng)絡(luò)ID標(biāo)識,--nodiscover參數(shù)表示節(jié)點(diǎn)私有,console參數(shù)表示進(jìn)入geth控制臺

連接測試網(wǎng)進(jìn)入控制臺,此時我們已經(jīng)進(jìn)入geth測試網(wǎng)的交互式控制臺,窗口也顯示「Welcome to the Geth JavaScript console」成功提示!

4. Geth使用

在以太坊網(wǎng)絡(luò)中,賬戶是其重要的組成部分,下面我們以查詢鏈上賬戶列表開始常用的指令功能。

  • 查詢賬戶列表? ? ??輸入指令:eth.accounts? ? ?輸出結(jié)果:[]

含義:意思是無賬戶地址,因?yàn)槲覀兪裁匆矝]做,所以當(dāng)然是不會憑空出現(xiàn)賬戶了。

  • 創(chuàng)建新賬戶? ? ? ? ?輸入指令:personal.newAccount("123")? ??輸出結(jié)果:

含義:表明賬戶新建成功,返回賬戶地址,123為賬戶密碼。此時我們再次查詢賬戶列表會發(fā)現(xiàn)已有剛創(chuàng)建的地址了。

  • 查詢賬戶余額? ? ? ? ? ??輸入指令:eth.getBalance(eth.accounts[0])? ? 輸出結(jié)果:0

含義:表明這個賬戶的余額是0。

  • 啟動或停止挖礦? ? ? ??輸入指令:miner.start();admin.sleepBlocks(1);miner.stop()? ?

輸入指令:?eth.getBalance(eth.accounts[0])

輸出結(jié)果:5000000000000000000

含義:這三條指令意思是啟動挖礦程序,當(dāng)挖到1個區(qū)塊時停止挖礦,挖礦所得默認(rèn)進(jìn)入第一個賬戶里。耐心等待成功挖出1個塊,此時我們的節(jié)點(diǎn)就是礦工節(jié)點(diǎn)!再次查詢賬戶余額,輸出5的18方wei。

  • 創(chuàng)建一個新賬戶,這樣就有兩個賬戶,我們把第一個賬戶的5個ETH,轉(zhuǎn)2個ETH到新賬戶。

前提條件:解鎖賬戶一

輸入指令: eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(2,"ether")})

含義:在發(fā)起交易前先解鎖第一個賬戶,使用eth.sendTransaction指令發(fā)起交易,結(jié)果返回交易哈希存根,此時我們這筆交易并沒有生效,可以使用txpool.status指令查看交易池的情況pedding為1表明這筆交易還款打包進(jìn)區(qū)塊。因?yàn)榇虬鼌^(qū)塊是由礦工做的工作,所以我們啟動礦工。耐心等待一會再次查看第一個賬戶余額顯示8000000000000000000,而第二個賬戶顯示2000000000000000000,說明我們的轉(zhuǎn)賬交易成功啦!為什么第一個賬戶是8個ETH呢?這是因?yàn)榈V工節(jié)點(diǎn)又挖出5個ETH了,加上之前的3個剛好正確!

  • 查看區(qū)塊信息? ? ? ?輸入指令:eth.getBlock(2)? ? ? ?輸出結(jié)果:第二個區(qū)塊信息
  • 查看交易信息

輸入指令:eth.getTransaction("0x9216e836a292a90d85684015c01144600a80024424ba9585199aaea05a0a3ea4")

輸出結(jié)果:該筆交易詳情

?

5. 腳本啟動geth客戶端

  • 我們使用以下命令啟動 geth:geth?--datadir data?--rpc? ??打開另一個命令行界面,啟動Mist或以太坊錢包,能看到之前創(chuàng)建的兩個賬戶用 “--rpc” 參數(shù)讓 geth 接受 RPC 連接,這是很有必要的,這樣 truffle 才可以連接到geth。

進(jìn)行兩次挖礦后,賬戶1余額變成10以太幣

  • 可以編寫腳本,存儲成文件private_blockchain_start.sh,內(nèi)容如下,以后直接執(zhí)行.sh即可開啟geth console

geth --rpc --rpcaddr="0.0.0.0" --rpccorsdomain="*" --unlock '0,1' --password password --nodiscover --maxpeers '5' --networkid '123' --datadir 'data' console

password中存儲的是兩個測試賬戶的密碼,內(nèi)容如下:

在命令行中運(yùn)行腳本,會自動開啟git bash,啟動geth客戶端,可以輸入eth.accounts測試查看兩個以太坊賬戶

總結(jié)

以上是生活随笔為你收集整理的Geth安装和使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。