搭建私鏈的目的:在區塊鏈開發中可以使用公網主鏈,但會造成不必要的金錢浪費。在以太坊鏈上幹任何事都需要消耗gas。
所以對於實驗開發,一般都是在自己的私鏈上做實驗。
Geth客戶端下載
官網下載地址:https://ethereum.github.io/go-ethereum/downloads/
初始化創世區塊genesis.json配置文件
{
//64位隨機數,用於挖礦
"nonce":"0x0000000000000042",
//與nonce 共同用於挖礦
"mixhash":"0x0000000000000000000000000000000000000000000000000000000000000000",
//挖礦難度
"difficulty": "0x4000",
//用來提前設置帳號的以太幣數量,例:
//"alloc": {
//“0x0000000000000000000000000000000000000001”:{"balance":"10000000"},
//"0x0000000000000000000000000000000000000002":{"balance":"20000000"}
//},
"alloc": {},
//挖礦的賬戶,默認錢包地址,這裏因爲沒有地址,所有全是0
//後面運行geth後創建新賬戶時,如果geth 發現沒有地址,會默認將第一個賬戶地址設置爲礦工帳號
"coinbase":"0x0000000000000000000000000000000000000000",
//創世區塊的時間戳
"timestamp": "0x00",
//上一個區塊的Hash值,因爲是創世塊,前面沒有,所以是0
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
//附加信息,隨便填文本或不填也行
"extraData": "0x00000000",
//gas最高限制,以太坊運行交易,合約等消耗的gas最高限制,這裏設置爲最高
"gasLimit":"0xffffffff",
"config": {
//區塊鏈的ID,公有鏈爲1
"chainId": 666,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
}
}
初始化創世區塊
爲了不和主鏈的數據衝突,建議建立私鏈數據文件夾。
我在E盤建了一個Eth文件夾作爲以太坊實驗工作區,並在裏面創建了一個PrivChain文件夾作爲這個私鏈的數據存放文件夾 。將genesis.json也放在了文件夾下。
打開Windows命令行
geth --datadir "E:\Eth\PrivChain" init "E:\Eth\genesis.json"
–datadir 選項用來指定私鏈存放的數據目錄 init命令爲創世命令,後面緊跟是創世配置文件路徑
打開geth命令行
geth --datadir "E:\Eth\PrivChain" --dev console
創建賬戶
personal.newAccount('wyj')
括號裏面的是密碼 會返回賬戶地址
查詢賬戶是否存在
eth.accounts
如果沒有會顯示 [],如果已經成功創建帳號則顯示地址,如:[“0x12255e04ecd9ba003ac8093f4733d534d9f59843”]
查詢對應的賬戶地址
由於我們第一次創建賬戶,所以目前只有一個賬戶。可以用eth.accounts[0]提取第一個賬戶地址。
eth.accounts[0]
查詢當前賬戶餘額
eth.getBalance(帳號地址)
或
eth.getBalance(eth.accounts[0])
或
my=eth.accounts[0]
eth.getBalance(my)
開始挖礦
miner.start()
停止挖礦
miner.stop()
交易
需要先解鎖賬戶
personal.unlockAccount(賬戶)
//格式化幣數量
amount = web3.toWei(5,'other')
//發起交易 返回交易hash值
eth.sendTransaction({from:發起交易賬戶地址,to:接收賬戶地址,value:貨幣數量})
查看當前區塊鏈數量
eth.blockNumber
通過交易hash值可以查看交易信息
eth.getTransaction(交易hash值)
通過區塊號查看區塊
//這裏查詢創世塊信息
eth.getBlock(0)