Mining im privaten Netzwerk ohne Ether an das Coinbase-Konto

Ich bin relativ neu bei Ethereum. Ich habe versucht, ein privates Testnetzwerk einzurichten. Ich habe folgende Genesis-Datei verwendet:

{
"config": {
"chainId": 15, 
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty": "20",
"gasLimit": "2100000",
"alloc": {
"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": 
    { "balance": "300000" },
"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": 
    { "balance": "400000" }
}
}

Die folgenden Befehle wurden verwendet, um das Netzwerk zu initialisieren und zu starten:

geth --datadir "C:\Users\Mahe\Desktop\Ethereum\data" init "Path_to_genesis" 
geth --datadir "C:\Users\Mahe\Desktop\Ethereum\data" --nodiscover --networkid 65535 --port 60303 --rpc --rpccorsdomain "*" --rpcapi "web3,eth,personal,miner" console 2>Node2.log

Das Netzwerk wurde erfolgreich gestartet, danach habe ich ein neues Konto erstellt und es als Coinbase festgelegt. eth.coinbase wird gesetzt und gibt die Adresse des erstellten Kontos an. Es gibt jedoch keine Erhöhung des Ethers auf dem erstellten Konto, wenn Mining( eth.getBalance(eth.accounts[0]) 0) zurückgibt . Jede Hilfe wäre willkommen.

hast du mit dem minen angefangen?
Ja, habe ich. Es hat das Gleichgewicht nicht erhöht.

Antworten (2)

Ich denke, Sie müssen mit dem Bergbau beginnen, um Ether zu bekommen. Wie hier auf der Github-Seite beschrieben, können Sie dies mit der --mineBefehlszeilenoption zu Beginn oder miner.start()in der Konsole während der Ausführung tun.

CPU-Mining mit Geth

Bei Frontier, der ersten Version von Ethereum, benötigen Sie nur a) eine GPU und b) einen Ethereum-Client, Geth. CPU-Mining wird möglich sein, aber zu ineffizient, um einen Wert zu halten.

Im Moment enthält Geth nur einen CPU-Miner, und das Team testet einen GPU-Miner-Zweig, aber dieser wird nicht Teil von Frontier sein.

Die C++-Implementierung von Ethereum bietet auch einen GPU-Miner, sowohl als Teil von Eth (seine CLI), AlethZero (seine GUI) als auch EthMiner (der eigenständige Miner).

HINWEIS: Stellen Sie sicher, dass Ihre Blockchain vollständig mit der Hauptkette synchronisiert ist, bevor Sie mit dem Mining beginnen, da Sie sonst nicht auf der Hauptkette minen werden.

Wenn Sie Ihren Ethereum-Knoten mit Geth starten, wird er standardmäßig nicht abgebaut. Um es im Mining-Modus zu starten, verwenden Sie die Befehlszeilenoption --mine. Der Parameter -minerthreads kann verwendet werden, um die Anzahl paralleler Mining-Threads festzulegen (standardmäßig die Gesamtzahl der Prozessorkerne).

geth --mine --minerthreads=4

Sie können das CPU-Mining auch zur Laufzeit über die Konsole starten und stoppen. miner.start übernimmt einen optionalen Parameter für die Anzahl der Miner-Threads.

> miner.start(8)
true
> miner.stop()
true

Basierend auf der Diskussion in den Kommentaren müssen Sie,

  • richtig ein Coinbase-Konto einrichten und
  • Halten Sie den Miner lange genug gestartet, anstatt ihn schnell zu stoppen

um Ether auf Ihr Konto zu bekommen.

Ich habe derzeit nur ein Konto und eth.coinbase gibt die Adresse dieses Kontos an (das ist eth.accounts[0]). Die Coinbase wird erfolgreich auf dieses Konto eingestellt.
eth.blockNumber gibt auch 0 zurück
Es sind ungefähr 4 Minuten nach miner.start vergangen und die Blocknummer ist immer noch null. eth.hashrate gibt immer noch 0 zurück.

Das Problem war, dass die Blöcke nicht abgebaut wurden. Der erste Block wurde nach 20 Minuten miner.start() abgebaut, danach verkürzte sich die Geschwindigkeit der Blockgenerierung. Das Guthaben auf dem Coinbase-Konto begann sich zu erhöhen, als Blöcke erfolgreich abgebaut wurden.

Wenn ein Block abgebaut wird, erhalten Sie eine Nachricht auf der Konsole
Nein, tun wir nicht. Wir erhalten jedoch eine Nachricht, wenn ein Vertrag abgebaut wird.
Nun, dann erhöhen Sie die Ausführlichkeitsstufe
@Nulik wie erzeuge ich die Ausführlichkeitsstufe?
-verbosity 6zur Kommandozeile hinzufügen