搭建以太坊私有鏈(Windows)

搭建私鏈的目的:在區塊鏈開發中可以使用公網主鏈,但會造成不必要的金錢浪費。在以太坊鏈上幹任何事都需要消耗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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章