Beim ersten Start von geth (Ethereum-Client) dauert es zu lange, bis das Mining gestartet wird, wenn eine Meldung wie „Generating DAG for epoch .........“ angezeigt wird

Was ich habe
Fall 1. folgende Befehlszeile ohne --devOption (nimmt zu viel Zeit, um mit dem Mining zu beginnen)

geth --datadir ~/privateBlockChain1 --mine --minerthreads 1 --networkid 1300 --rpcport 8000  --port 30301 --rpcapi="db,eth,net,web3,personal,admin" --rpc --maxpeers 0 --nodiscover --targetgaslimit 110000000000 console

Fall 2. folgende Befehlszeile mit --devOption (mit diesem Befehlszeilenargument funktioniert Mining einwandfrei)

geth --datadir ~/privateBlockChain1 --mine --minerthreads 1 --networkid 1300 --rpcport 8000  --port 30301 --rpcapi="db,eth,net,web3,personal,admin" --rpc --maxpeers 0 --nodiscover --targetgaslimit 110000000000 **--dev** console

Szenario

  1. Starten Sie geth mit dem Befehl case 1. Schritt 2.
  2. Angenommen, ein Block, der durch den Befehl Fall 1 erstellt wurde, wie zum Beispiel -> #34544 Block
  3. Starten Sie geth mit dem Befehl case 2
  4. Block beginnt mit der Erstellung von Block Nr. 1, es ist keine Wiederaufnahme von Block Nr. 34544, wie man es behebt.

Was ich möchte?

a) Wie kann ich schnell mit dem Mining beginnen (in einer Sekunde oder einer Minute), wenn ich die Geth-Befehlszeile starte
? b) Wenn ich die Option --dev nicht verwenden möchte, wie kann ich dann schnell mit dem Mining beginnen?
c) Angenommen, wenn Sie sagen, --dev ist die einzige Option, um beim Start schnell mit dem Mining zu beginnen. Wie kann ich dann den Mining-Block vom vorherigen Block fortsetzen (dh # 34544, nicht vom Block # 1)
d) Was sind die Vor- und Nachteile von -- dev-Option mit geth.

Antworten (1)

Wenn man sich den Quellcode ansieht, scheint die --devOption nur das Netzwerk auszuschalten. Kein Abhören, keine Erkennung anderer Knoten. Ich gehe also nicht sofort davon aus, dass Sie die --networkidOption nicht auch verwenden können.

Ich sehe viel Gerede darüber, wie das --devFlag Sie daran hindert, Teil eines Testnetzwerks zu sein (einschließlich des von Ihnen eingerichteten privaten Netzwerks). Innerhalb meiner 15-minütigen Recherche konnte ich dies jedoch nicht innerhalb des Quellcodes bestätigen. Wenn ich es endgültig herausfinde, werde ich meine Antwort aktualisieren.

Unter der Annahme, dass dies zutrifft, --deverstellt das Flag immer ein eigenständiges Netzwerk und beginnt immer bei Block Nr. 1. Ich rate also, nicht zu verwenden, --devwenn Sie nicht jedes Mal von vorne anfangen möchten.