Wie kann man Ethereum-Testnet-Konten Ether zuweisen?

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.

Antworten (2)

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