Go-Ethereum
如何更新我的私有乙太坊區塊鏈上的預設 homesteadBlock 值?
我正在嘗試使用要分配的 homesteadBlock 值創建我的私有乙太坊區塊鏈。據我了解,預設 homesteadBlock 值為 1500000。
$$ Q $$如何將 homesteadBlock 值分配為 0?在 geth 內部是否可以檢查它的值是否已更新為 0?或者我如何檢查 homesteadBlock 值是否已更新? 更重要的是如何創建我的私有乙太坊區塊鏈?我知道有很多關於這個問題的資源,但我找不到 geth 1.4.17 版本的資源。
我不確定我的私有區塊鏈的 homesteadBlock 值是否已更新。以下是我從頭開始創建我的私有乙太坊區塊鏈的方法:
首先清空先前的設置數據:
[$] rm -rf ~/.ethash/* && rm -rf ~/.ethereum/* [$] sudo rm -rf /home/miner/MyEthereumEbloc/ && mkdir /home/miner/MyEthereumEbloc/
創建一個新帳戶:
[$] sudo geth --datadir="/home/miner/MyEthereumEbloc/" account new
賬戶新地址:{eda8c89a68f059c1659272076e85e4373717b0d8}
此地址將添加到 CustomGenesis.json 文件中。
**設置 CustomGenesis.json:**對於連接到私有乙太坊網路的所有節點,此文件應該相同:
{ "config": { "homesteadBlock": 0 }, "nonce": "0", "difficulty": "0x400", "mixhash": "0x00000000000000000000000000000000000000647572616c65787365646c6578", "coinbase": "0x0000000000000000000000000000000000000000", "timestamp": "0x00", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x", "gasLimit": "0x3B4A1B44", "alloc": { "0xeda8c89a68f059c1659272076e85e4373717b0d8": //added line { "balance": "1000000000000000000000000000000" } //added line } }
區塊鏈初始化:
[$] sudo geth --datadir="/home/miner/MyEthereumEbloc/" init /home/CustomGenesis.json
請注意,當我執行時,我可以看到更新的餘額:
sudo geth --datadir="/home/miner/MyEthereumEbloc/" console
primaryAddress = eth.accounts[0] > web3.fromWei(eth.getBalance(primaryAddress), "ether") 1000000000000000000000000000000
要我的:
$ sudo ./geth --port 3000 --networkid 23422 --identity node1 --verbosity 3 --nodiscover --nat none --datadir="/home/miner/MyEthereumEbloc" --mine --ipcpath /home/miner/MyEthereumEbloc/geth.ipc console
感謝您的寶貴幫助和時間。
為了更改 Homestead 塊,您需要從原始碼重新編譯 geth。
您可以看到相關行:
MainNetHomesteadBlock = big.NewInt(1150000)
只需將其更改為
MainNetHomesteadBlock = big.NewInt(0)
並使用說明重新編譯
你可以通過編譯這個合約來測試 Homestead 是否被啟用:
contract TestHomestead{ function test () constant returns(bool){ return address(4).delegatecall(1); } }
如果您在 Homestead,這將使用很少的氣體(大約 300)點頭不會返回 true。如果您處於前沿,您將使用交易中發送的所有氣體,並且會拋出異常。