Problem beim Generieren von DAG für Epoche 1 mit Geth

Ich betreibe Geth in einem privaten Ethereum-Netzwerk. Ich habe CalcDifficulty() in block_validator.go geändert, um immer big.NewInt(0x100) zurückzugeben ... um eine konstante Schwierigkeit zu haben.

Das Mining beginnt gut ... Das Problem tritt auf, wenn das Mining für Epoche 1 beginnt, dh nachdem 30000 Blöcke generiert wurden, erhalte ich die folgende Laufzeitausnahme:

I1228 05:42:57.026535 miner/worker.go:362] 🔨  Mined stale block (#29998 / 4356a658).
I1228 05:42:57.029435 miner/worker.go:362] 🔨  Mined block (#29999 / 95be9c6e). Wait 5 blocks for confirmation
I1228 05:42:57.029678 miner/worker.go:362] 🔨  Mined stale block (#29999 / 5f6a0b48).
I1228 05:42:57.029823 miner/worker.go:570] commit new work on block 30000 with 0 txs & 0 uncles. Took 335.912µs
I1228 05:42:57.029868 vendor/github.com/ethereum/ethash/ethash.go:259] Generating DAG for epoch 1 (size 1082130304) (290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563)
I1228 05:42:57.029885 vendor/github.com/ethereum/ethash/ethash.go:259] Generating DAG for epoch 0 (size 1073739904) (0000000000000000000000000000000000000000000000000000000000000000)
I1228 05:42:57.029908 vendor/github.com/ethereum/ethash/ethash.go:259] Generating DAG for epoch 1 (size 1082130304) (290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563)
I1228 05:42:58.112724 vendor/github.com/ethereum/ethash/ethash.go:291] Generating DAG: 0%
I1228 05:42:58.415948 vendor/github.com/ethereum/ethash/ethash.go:276] Done generating DAG for epoch 0, it took 1.386053157s
fatal error: unexpected signal during runtime execution
[signal 0x7 code=0x2 addr=0x7f210f9af9c8 pc=0xd21c3a]
runtime stack:
runtime.throw(0x12b9d80, 0x2a)
        /usr/lib/go-1.6/src/runtime/panic.go:547 +0x90
runtime.sigpanic()
        /usr/lib/go-1.6/src/runtime/sigpanic_unix.go:12 +0x5a

und das Folgende sind die Dateien, die im .ethash-Verzeichnis erstellt werden

 ubuntu@ip-172-31-29-183:~/.ethash$ ls -hlrt
 total 1.1G
 -rw-rw-r-- 1 ubuntu ubuntu 1.0G Dec 27 21:14 full-R23-0000000000000000
 -rw-rw-r-- 1 ubuntu ubuntu 1.1G Dec 28 07:47 full-R23-290decd9548b62a8

 ubuntu@ip-172-31-29-183:~/.ethash$ 

Was ist falsch ? Freundlicher Hinweis

Was ist Ihre Systemspezifikation? Laufen Sie nativ oder in einer VM/einem Container? Ich würde vermuten, dass Sie entweder zu wenig Arbeitsspeicher oder Speicherplatz haben ...
Nein, ich führe es nicht in einem VM-Container aus ... Ich führe es auf einem Computer mit Betriebssystem aus - Ubuntu mit 16 GB Ram und sehr viel ausreichendem Speicherplatz. Außerdem sehe ich kein Problem mit den Systemspezifikationen, da das Mining gut lief, als ich den Code nicht geändert hatte, um statische Schwierigkeiten zu haben ... ohne Änderungen konnte ich Epoche 4 erreichen.
@RichardHorrocks Ich konnte das Problem lösen, indem ich geth makedag 30000 ~/.ethashdie Dag-Generierung ausführen und abschließen ließ ... dann konnte ich mit dem Mining fortfahren. Können Sie eine Begründung dafür geben.
Hmm, interessant. Es gibt einen offenen Fehler, der ein ähnliches Problem wie Sie meldet. Sie scheinen die gleiche Modifikation vorgenommen zu haben, die Sie haben. (Sie sind es nicht, oder?) Können Sie bestätigen, dass Sie die Änderung auf die gleiche Weise vorgenommen haben? github.com/ethereum/go-ethereum/issues/3056
@RichardHorrocks Ja, ich habe Änderungen auf die gleiche Weise vorgenommen. Der Issue Reporter bin nicht ich.

Antworten (1)

Es scheint einen offenen Fehler im Zusammenhang mit dem Problem -Issue-3056 zu geben

Die vorliegende Lösung, die für mich funktioniert, führe ich vor dem erneuten Mining den folgenden Befehl aus

geth makedag <blocknumber> <ethash dir path>

Beginnen Sie dann erneut mit dem Mining.