1. 程式人生 > >以太坊私有鏈中geth的操作

以太坊私有鏈中geth的操作

以太坊私有鏈中geth的操作

1、新建賬戶
區塊鏈中的賬戶是由一個公鑰和一個私鑰組成的,公鑰是別人可以轉錢給你的地址
第一種方式不先指定私鑰:

personal.newAccount()

第二種先指定私鑰:

personal.newAccount("123456")

在這裡插入圖片描述
2、檢視系統中的賬戶
兩種方式都可以檢視

personal.listAccounts
eth.accounts

在這裡插入圖片描述
這兩種方式都可以當做陣列用下表索引
在這裡插入圖片描述
3、檢視餘額
檢視系統中第一個賬戶的餘額

eth.getBalance(eth.accounts[0])

在這裡插入圖片描述
4、啟動挖礦與結束挖礦
start中的引數是挖礦的執行緒數(我虛擬機器分配了2G記憶體,挖了十分鐘,期間卡得要死,電腦什麼事都幹不了,所以我選擇打了一把王者的人機,慢慢等吧)

miner.start(1)
miner.stop()

在這裡插入圖片描述
5、檢視區塊高度
如果區塊高度比以前增加了,表明你挖礦成功了。
還有一種方式驗證是否挖礦成功就是查詢賬戶餘額

eth.blockNumber

在這裡插入圖片描述
6、儲存挖礦收益

web3.fromWei(eth.getBalance(eth.accounts[0]),'ether')

在這裡插入圖片描述
7、檢視當前挖礦收益的賬戶
檢視當前挖礦收益的賬戶(意思就是你的每次挖礦所得都是預設存入這個賬戶,預設是eth.accounts[0],即第一個賬戶)

eth.coinbase

修改挖礦收益賬戶

miner.setEtherbase(eth.accounts[1])

在這裡插入圖片描述
8、解鎖賬戶
解鎖賬戶是為了對賬戶的存款做一些操作,這時需要你賬戶的地址(公鑰)和密碼
方法一:括號中的引數第一個是地址,第二個是密碼

personal.unlockAccount("0xb0eda7494d2515d907368d3515c9559a1d91cc09","123456")

在這裡插入圖片描述
方法二:通過命令列輸入密碼

personal.unlockAccount(eth.accounts[1])

在這裡插入圖片描述
9、轉賬
每次進行轉賬操作都需要解鎖賬戶,因為賬戶每隔一段時間就會被鎖住,要傳送交易,必須先解鎖賬戶
引數說明:第一個轉出賬戶,第二個接收賬戶,第三個轉出3個以太幣

eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(3,"ether")})

返回結果,此時賬戶餘額並沒有發生變化
在這裡插入圖片描述
此時交易已經提交到區塊鏈,返回了交易的hash,但還未被處理,這可以通過檢視txpool來驗證:

txpool.status

在這裡插入圖片描述
其中有一條pending的交易,pending表示已提交但還未被處理的交易。
要使交易被處理,必須要挖礦。這裡我們啟動挖礦,然後等待挖到一個區塊之後就停止挖礦
txpool中pending的交易數量應該為0了,說明交易已經被處理了:
(這個數額是我上完個廁所回來,結果挖礦挖多了賺錢了,所以數額不對)
在這裡插入圖片描述
10、檢視交易
通過交易雜湊檢視交易

eth.getTransaction("0x32f0ede0209c24ed1673e1e1298808952127f3714c952e84a349674315da199b")

在這裡插入圖片描述
通過區塊號檢視區塊

eth.getBlock(5)

在這裡插入圖片描述