miner.start(1) löst das Mining aus, startet es aber nicht

Ich erstelle meine eigene private Ethereum-Blockchain.

sudo geth --rpcapi eth,web3,personal --rpc --networkid=15

Der obige Befehl gibt die folgenden Protokolle aus.

INFO [09-18|10:16:42.151] Maximum peer count                       ETH=25 LES=0 total=25
INFO [09-18|10:16:42.153] Starting peer-to-peer node               instance=Geth/v1.8.15-stable-89451f7c/linux-amd64/go1.10
INFO [09-18|10:16:42.153] Allocated cache and file handles         database=/home/blockchain/.ethereum/geth/chaindata cache=768 handles=512
INFO [09-18|10:16:42.171] Initialised chain configuration          config="{ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 Constantinople: <nil> Engine: ethash}"
INFO [09-18|10:16:42.171] Disk storage enabled for ethash caches   dir=/home/blockchain/.ethereum/geth/ethash count=3
INFO [09-18|10:16:42.171] Disk storage enabled for ethash DAGs     dir=/home/blockchain/.ethash               count=2
INFO [09-18|10:16:42.171] Initialising Ethereum protocol           versions="[63 62]" network=15
INFO [09-18|10:16:42.173] Loaded most recent local header          number=0 hash=d4e567…cb8fa3 td=17179869184
INFO [09-18|10:16:42.173] Loaded most recent local full block      number=0 hash=d4e567…cb8fa3 td=17179869184
INFO [09-18|10:16:42.173] Loaded most recent local fast block      number=0 hash=d4e567…cb8fa3 td=17179869184
INFO [09-18|10:16:42.174] Loaded local transaction journal         transactions=0 dropped=0
INFO [09-18|10:16:42.174] Regenerated local transaction journal    transactions=0 accounts=0
INFO [09-18|10:16:42.174] Starting P2P networking
INFO [09-18|10:16:46.891] UDP listener up                          self=enode://e919e98154dcddc4e6e6f847332795cbaf072607e410c2330702d3b66b4219eb98c4ebf39dc1ee2b21af74049926a5fb646542636f8835eb420157d825cc3102@[::]:30303
INFO [09-18|10:16:46.892] RLPx listener up                         self=enode://e919e98154dcddc4e6e6f847332795cbaf072607e410c2330702d3b66b4219eb98c4ebf39dc1ee2b21af74049926a5fb646542636f8835eb420157d825cc3102@[::]:30303
INFO [09-18|10:16:46.896] IPC endpoint opened                      url=/home/blockchain/.ethereum/geth.ipc
INFO [09-18|10:16:46.897] HTTP endpoint opened                     url=http://127.0.0.1:8545               cors= vhosts=localhost
INFO [09-18|10:16:59.561] Etherbase automatically configured       address=0xa76D511FCddEB3bCCa1Eb5B6bf4EC39a8d95668d

Dann triggere ich, miner.start(1)indem ich die Geth-Konsole verwende sudo geth attach ../.ethereum/geth.ipc, damit die folgenden Zeilen in den obigen Protokollen hinzugefügt werden.

INFO [09-18|10:18:06.859] Updated mining threads                   threads=1
INFO [09-18|10:18:06.860] Transaction pool price threshold updated price=1000000000
INFO [09-18|10:18:06.860] Commit new mining work                   number=1 sealhash=d91037…57fc0d uncles=0 txs=0 gas=0 fees=0 elapsed=648.451µs

Und danach passiert nichts.

FYI, miner.start(1)gibt zurück null, aber das ist kein Problem, denke ich.

Könnten Sie mir bitte einige Hinweise geben, damit ich mögliche Problemumgehungen vornehmen kann, um den Bergbau zu starten.

Ihr Knoten ist anscheinend falsch konfiguriert. Wenn Sie sich die Protokolle ansehen, können Sie tatsächlich sehen, dass die Hauptkette (ChainID = 1) und nicht die von Ihnen angegebene Netzwerk-ID verwendet wird. Haben Sie den DAG bereits vor dem Mining erstellt? (Normalerweise dauert es einige Zeit).
Ja @Briomkez, es hat tatsächlich viel Zeit gedauert.

Antworten (3)

Sie können versuchen, diesen Befehl (rm -rf $HOME/.ethash) zu verwenden, bevor Sie geth starten. hier ist detail

habe das schon probiert.

Wenn Sie Windows mit einem benutzerdefinierten Datadir wie ich verwenden. Es stellt sich heraus, dass Ethash immer noch hier lebt: C:\Windows\System32\config\systemprofile\AppData. Meine Lösung war, den Inhalt dieses Verzeichnisses anstelle meines Datenverzeichnisses zu löschen. Möglicherweise gibt es ein Äquivalent in einer Linux-Umgebung. Verweisen Sie auf Ihr IPC-Channel-Startfeedback:

[2019.02.19-11:16:04.464350]: INFO [02-19|11:16:02] Starting peer-to-peer node instance=Geth/v1.7.3-stable-4bb3c89d/windows-amd64/go1.9. [2019.02.19-11:16:04.474094]: INFO [02-19|11:16:02] Allocated cache and file handles database=C:\\DTS\\Ledgers\\1111\\Ledger\\geth\\chaindata cache=128 handles=1024. [2019.02.19-11:16:04.485756]: INFO [02-19|11:16:02] Initialised chain configuration config="{ChainID: 1111 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: <nil> EIP155: 0 EIP158: 0 Byzantium: <nil> Engine: unknown}". [2019.02.19-11:16:04.491861]: INFO [02-19|11:16:02] Disk storage enabled for ethash caches dir=C:\\DTS\\Ledgers\\1111\\Ledger\\geth\\ethash count=3. [2019.02.19-11:16:04.497462]: INFO [02-19|11:16:02] Disk storage enabled for ethash DAGs dir=C:\\WINDOWS\\system32\\config\\systemprofile\\AppData\\Ethash count=2. [2019.02.19-11:16:04.503220]: INFO [02-19|11:16:02] Initialising Ethereum protocol versions="[63 62]" network=1111. [2019.02.19-11:16:04.508075]: INFO [02-19|11:16:02] Loaded most recent local header number=0 hash=95ae19…a63ec2 td=0. [2019.02.19-11:16:04.512925]: INFO [02-19|11:16:02] Loaded most recent local full block number=0 hash=95ae19…a63ec2 td=0. [2019.02.19-11:16:04.518492]: INFO [02-19|11:16:02] Loaded most recent local fast block number=0 hash=95ae19…a63ec2 td=0. [2019.02.19-11:16:04.523792]: INFO [02-19|11:16:02] Loaded local transaction journal transactions=1 dropped=0. [2019.02.19-11:16:04.528894]: INFO [02-19|11:16:02] Regenerated local transaction journal transactions=1 accounts=1.

Beachten Sie insbesondere: C:\WINDOWS\system32\config\systemprofile\AppData\Ethash

Der Kommentar von @Briomkez ist ein korrekter Anfang - beim Ausführen des Befehls geth wird angezeigt, dass Sie eine Verbindung hergestellt haben, ChainID: 1die nicht korrekt ist - es ist nicht Ihr privates Netzwerk.

Um ein privates Netzwerk zu starten, erstellen Sie Ihre Genesis-Datei (ich verwende gerne Puppeth).

Sobald Sie Ihre Genesis-Datei erstellt haben, führen Sie geth init aus, wichtig hier - definieren Sie ein Datadir

geth --datadir test init ./testpow.json

Dadurch wird "eine Datenbank erstellt, die diesen Genesis-Block verwendet, führen Sie den folgenden Befehl aus. Dadurch wird der kanonische Genesis-Block für Ihre Kette importiert und festgelegt" - https://github.com/ethereum/go-ethereum/wiki/Private-network

Führen Sie nun denselben Befehl aus, den Sie oben eingefügt haben, aber fügen Sie hier erneut das Datenverzeichnis ein ->

geth --datadir test --rpcapi eth,web3,personal --rpc --networkid=15

Wenn Sie diesen Befehl ausführen, wird Ihnen die IPC-Datei angezeigt, die gegenüber der Werbebuchung verwendet wird:

ipc geöffnet

Stellen Sie sicher, dass Sie diesen IPC verwenden, wenn Sie laufengeth attach

Sobald Sie sich in der Konsole befinden – vorausgesetzt, Sie haben ein Konto erstellt und entsperrt, können Sie es ausführen. miner.start(1)Andernfalls müssen Sie möglicherweise personal.newAccountzuvor ausführen, um ein Konto für das Mining zu erstellenrunning miner.start(1)

Sie können diese Flags auch verwenden, um das Mining von Ihrem Geth-Befehl aus zu starten-unlock '0xaddress' --password ./password.txt --mine