直接在主目錄下創建檔案夾(這是在geth環境搭建好的情況下)

創建創世區塊
vim genesis.json
英文鍵盤點擊i,復制粘貼下面代碼然后–>esc–>:wq!強制保存退出
報錯:Fatal: Failed to write genesis block: unsupported fork ordering: eip150Block not enabled, but eip155Block enabled at 0
修正:
{
"alloc": {},
"config":{
"chainId":15,
"homesteadBlock":0,
"eip155Block":0,
"eip158Block":0,
"eip150Block":0
},
"nonce":"0x00000000000000042",
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x02",
"coinbase":"0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "",
"gasLimit":"0x2fefd8"
}
初始化鏈
geth --datadir data init genesis.json
這時候可以注意一下,此時當前目錄下面會新增出一個data檔案,data下面有兩個檔案夾geth和keystore
geth中保存的是區塊鏈的相關資料
keystore中保存的是該鏈條中的用戶資訊
啟動私有鏈:在console中啟用私有鏈,并將日志輸出重定向到testEth.log中(如果啟動出錯就是創世區塊genesis.json中有些問題,多了逗號大括號等等)
geth --datadir data --networkid 123 console 2>>testEth.log
–datadir 代表檔案夾地址,
打開另一個終端,找到testEth.log的所在目錄,執行命令 tail -f geth.log 從而持續的輸出以太坊的日志
新建帳戶
可以使用兩種方式創建用戶如下,其中personal.newAccount(“123456”)中的123456是密碼,輸出的0x03c5ca63fd13777db295de7fe56be90a7f79ec93是用戶帳戶hash,這是兩個賬戶
personal.newAccount("123456")
personal.newAccount("123456")
查看已有帳戶
personal.listAccounts
[]
或者eth.accounts
每次記一長串的地址很麻煩,我們可以通過設定變數來acc0,acc1表示帳戶
> acc0 = eth.accounts[0]
"0xfcf6dce6b352f35c15d7245d9354c30cef71a989"
> acc1 = eth.accounts[1]
"0x25890c9e12d90a6e0e3f66eaa9cb21d3a581390e"
> eth.getBalance(acc0)
1.245e+21
> eth.getBalance(acc1)
0
查詢賬號的余額
eth.getBalance("0xfcf6dce6b352f35c15d7245d9354c30cef71a989")
eth.getBalance(acc0) //獲取第一個帳戶的資產,以wei為單位
使用這個方法可以查看格式化的以太幣
web3.fromWei(web3.eth.getBalance(acc0))
1245
挖礦測驗
eth.coinbase 會輸出默認的挖礦收入帳戶,默認為第一個創建的帳戶
eth.coinbase
"0xfcf6dce6b352f35c15d7245d9354c30cef71a989"
miner.start() //開始挖礦,挖礦時間會久一些,請耐心等待,可以通過eth.blockNumber查看當前塊高,或者通過日志查看
miner.stop()//停止挖礦

會顯示空,但是在后臺運行,輸出資訊保存在testEth.log
轉帳操作
從帳戶0xfcf6dce6b352f35c15d7245d9354c30cef71a989轉3個以太幣到0x25890c9e12d90a6e0e3f66eaa9cb21d3a581390e,如果不指定單位ether,默認轉的是wei,
> web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,"ether")})
之所以交易時報錯,是因為
這個是以太坊的一個保護機制,每隔一段時間賬戶就會自動鎖定,這個時候任何以太幣在賬戶之間的轉換都會被拒絕,除非把該賬戶解鎖.
這個時候我們就需要執行 personal.unlockAccount(acc0) 并輸入密碼來解鎖acc0才可,

交易的hash值
"0xce6b5887f6da6c28dece6958ad636ae5d034e60780c925b1ce5518e1443d8e5b"
解鎖后,交易成功,但查詢雙方余額仍然沒有變化,需要再次進行挖礦操作才會變化

還是沒有成功
txpool.status查看交易資訊,交易未完成

miner.start(1);admin.sleepBlocks(1);miner.stop()
挖出一個塊后自動停止
eth.blockNumber
查看目前已經挖出的區塊數量
挖礦卡在Commit new mining work問題
創世區塊中的"extraData": "0x777573686f756865"資料洗掉"extraData": ""
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/275525.html
標籤:區塊鏈
