Go-Ethereum
如何將一些乙太幣分配給乙太坊測試網賬戶?
問題:我怎樣才能在乙太坊測試網/開發甚至私有區塊鏈中獲得一些乙太幣?
我完全糊塗了。如果我使用這樣的自定義創世塊:
{ "config": { "chainId":123 , "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "nonce": "0x0000000000000042", "timestamp": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x00", "gasLimit": "0x8000000", "difficulty": "0x400", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x3333333333333333333333333333333333333333", "alloc":{"0x17e6672b3a917b7543d44e07846358aaa22a4379":{ "balance":"8000000000000000000" }} }
那麼如果我這樣做
geth --datadir ~/.ethereum_private init ~/CustomGenesis.json
出現此錯誤:
Fatal: Failed to write genesis block: database already contains an incompatible genesis block (have 6650a0ac6c5e8054, new 644f9b97e5f57df7)
如果我將“alloc”欄位留空,則錯誤將不再出現(但我沒有任何乙太幣)。
獲得一些乙太幣的另一個選擇是我的:
miner.start(1)
但如果我這樣做,就會出現 null 。所以,我不能再得到任何乙太了。
當我們使用 truffle + testrpc 時,我們沒有這種問題。因為它將乙太幣分配給我們創建的所有帳戶。
所以我不知道如何在乙太坊測試網/開發甚至私有區塊鏈中獲得一些乙太幣。
您不能從已經初始化的私有區塊鏈更改創世參數。
您必須重置區塊鏈以消除任何先前的交易。
geth --datadir <your_data_directory> removedb
然後你可以執行
geth --datadir <your_data_directory> init <your_genesis_file>
用餘額乙太創建一個私有區塊鏈。
將以下程式碼保存在 genesis.json
{ "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "nonce": "0x0000000000000042", "difficulty": "0x40", "gasLimit": "21000000000000000", "alloc": { "0x95490e50a8b43348fa198bad08d4de211fb2b887": { "balance": "100000000000000000000000000" }, "0xa4f6f95b6cb36025dd09c9f5fe068e401951e963": { "balance": "10000000000000000000" } }
}
初始化節點 us
geth --datadir "node1" init "/path/to/genesis.json"
然後使用進入java控制台
geth --datadir "node1" --rpc console
在 java 控制台中使用創建 coinbase 帳戶
personal.newAccount("Password")
方法一:
然後使用
miner.start(1)
現在您可以使用
eth.getBalance(eth.accounts[0])
你可以找到餘額
方法二:
創建帳戶後,複製帳戶地址並關閉 java 控制台。然後使用刪除 node1 文件夾下的密鑰庫文件
rm -rf `ls | grep -v keystore`
然後在 genesis.json 文件中用複制的地址和余額替換帳戶地址。然後再次使用初始化 node1
geth --datadir "node1" init "/path/to/genesis.json"
連接到 java 控制台並查詢餘額,現在您將擁有您在 genesis.json 中提到的餘額