Frage : Wie kann ich etwas Ether in Ethereum Testnet/Dev oder sogar private Blockchain bekommen?
Ich bin total verwirrt. Wenn ich einen benutzerdefinierten Genesis-Block wie diesen verwende:
{
"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"
}}
}
Dann, wenn ich es tue
geth --datadir ~/.ethereum_private init ~/CustomGenesis.json
dieser Fehler erscheint:
Fatal: Failed to write genesis block: database already contains an
incompatible genesis block (have 6650a0ac6c5e8054, new
644f9b97e5f57df7)
Wenn ich das Feld "alloc" leer lasse, wird der Fehler nicht mehr angezeigt (aber ich habe keinen Ether).
Die andere Möglichkeit, etwas Ether zu bekommen, ist Mining:
miner.start(1)
Aber wenn ich das tue, erscheint null. Also kann ich keinen Ether mehr bekommen.
Wir haben diese Art von Problemen nicht, wenn wir truffle + testrpc verwenden. Da es allen Konten, die wir erstellen, Ether zuweist.
Ich weiß also nicht, wie ich etwas Ether in Ethereum Testnet/Dev oder sogar private Blockchain bekommen kann.
Sie können die Genesis-Parameter der bereits initialisierten privaten Blockchain nicht ändern.
Sie müssen die Blockchain zurücksetzen, um alle vorherigen Transaktionen zu eliminieren .
geth --datadir <your_data_directory> removedb
Und dann können Sie ausführen
geth --datadir <your_data_directory> init <your_genesis_file>
Um eine private Blockchain mit Balance Ether zu erstellen.
Speichern Sie den folgenden Code in genesis.json
{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x0000000000000042",
"difficulty": "0x40",
"gasLimit": "21000000000000000",
"alloc": {
"0x95490e50a8b43348fa198bad08d4de211fb2b887": { "balance": "100000000000000000000000000" },
"0xa4f6f95b6cb36025dd09c9f5fe068e401951e963": { "balance": "10000000000000000000" }
}
}
Initialisieren Sie den Knoten us
geth --datadir "node1" init "/path/to/genesis.json"
Rufen Sie dann die Java-Konsole mit auf
geth --datadir "node1" --rpc console
Erstellen Sie in der Java-Konsole das Coinbase-Konto mit
personal.newAccount("Password")
Methode 1:
Starten Sie dann den Mining-Prozess mit
miner.start(1)
Jetzt können Sie den Kontostand mit überprüfen
eth.getBalance(eth.accounts[0])
Sie können das Gleichgewicht finden
Methode 2:
Kopieren Sie nach dem Erstellen des Kontos die Kontoadresse und schließen Sie die Java-Konsole. Löschen Sie dann die Keystore-Datei im Ordner node1 mit
rm -rf `ls | grep -v keystore`
Ersetzen Sie dann die Kontoadresse durch die kopierte und die gewünschten Salden in der Datei genesis.json. Initialisieren Sie dann erneut den node1 mit
geth --datadir "node1" init "/path/to/genesis.json"
Stellen Sie eine Verbindung zur Java-Konsole her und fragen Sie das Guthaben ab. Jetzt haben Sie das Guthaben, wie Sie es in genesis.json erwähnt haben