Fehlermeldung bei max. ungültiger Genesis-Datei: Hex-String hat ungerade Länge

Ich versuche, auf meinem Mac einen Genesis-Block für ein lokales Ethereum-Netzwerk zu erstellen, aber ich erhalte den Fehler:

ungültige Genesis-Datei: Hex-String hat ungerade Länge

wenn ich es mache.

Mein Code ist folgender:

{ 
  "nonce": "0x0000000000000042", 
  "timestamp": "0x0", 
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", 
  "extraData": "0x0", 
  "gasLimit": "0x8000000", 
  "difficulty": "0x400", 
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", 
  "coinbase": "0x3333333333333333333333333333333333333333", 
  "alloc": { }
}
Wenn Sie welchen Befehl ausführen, erhalten Sie diesen Fehler?
dl.dropboxusercontent.com/u/4270001/testnet_genesis.json Link zur Datei Ropsten testnet genesis.json. Blog über den Wechsel von Morden zu Ropsten: blog.ethereum.org/2016/11/20/from-morden-to-ropsten

Antworten (5)

Das gleiche Problem ist mir mit Geth 1.6 passiert, mit einer Genesis-Datei, die Ihrer ähnlich ist.

Letzten Freitag wurde Geth auf 1.6 aktualisiert ( https://github.com/ethereum/go-ethereum/releases/tag/v1.6.0 ).

In dieser Version:

Die Handhabung von Genesis-Block-JSON ist strenger und sicherer. Insbesondere erfordern die meisten JSON-Felder jetzt das Präfix „0x“. (#3794)

Ich habe diese Dokumentationsseite gefunden: https://github.com/ethereum/go-ethereum/wiki/Private-network

Auf dieser Seite finden Sie ein Beispiel einer Genesis-Datei, die auf Geth 1.6 funktioniert.

Ich denke, Ihre Genesis-Datei funktioniert mit früheren Versionen.

Danke Atrophie. Ich hatte auch das gleiche Problem und nach 2 Tagen Debugging fand ich diesen Beitrag und mein Problem wurde gelöst.

Ich hatte das gleiche Problem und stellte fest, dass das Problem war:

"zusätzliche Daten": "0x0",

Wenn Sie es ändern zu:

"extraData": "0x00",

Das Problem verschwindet.

An dieser Stelle haben Sie jedoch ein weiteres Problem, da Sie in der neuesten Version von Geth einen Konfigurationsabschnitt benötigen. Fügen Sie das Folgende hinzu und Sie sollten bereit sein.

"config": { }

Funktioniert bei mir! Schöne Lösung. @ Brad Lucas
Lesen Sie hier mehr über die Konfiguration: github.com/ethereum/go-ethereum/wiki/…

Ich habe die gleiche JSON-Datei wie oben verwendet und den gleichen "invalid hex"-Fehler erhalten. Gemäß dem obigen Vorschlag habe ich über den Link (siehe unten) zur neuen JSON-Datei gewechselt. Ich kann die Kette jetzt erfolgreich initialisieren, ohne den Hex-Fehler zu erhalten. Ich erhalte jedoch einen anderen Fehler, wenn ich versuche, einen Mining-Knoten zu starten. Ich frage mich, ob es daran liegt, dass dies einige vorfinanzierte Konten beinhaltet. Gibt es eine Syntax für den obigen Genesis-JSON, aber mit einer leeren Datei? (ohne vorfinanzierte Konten).

{
    "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "200000000",
    "gasLimit": "2100000",
    "alloc": {
        "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
        "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
    }
}
Bitte öffnen Sie einen neuen Beitrag, anstatt hier zu posten

Wie in einer anderen Antwort erwähnt, scheint dies eine Änderung mit der Veröffentlichung von geth 1.6.0 zu sein.

Da die genesis.jsonheruntergeladen statt generiert wurde, bin ich mir nicht sicher, ob es angemessen ist, die genesis.json.

Ich habe geth 1.5.9 installiert und konnte $ geth init genesis.jsondas in der Frage gezeigte alte Format verwenden.

Ich stehe vor dem gleichen Problem und löse es, indem ich einige Regeln befolge. Diese Regeln sind "mixhash" = Sie müssen Daten 64 mal nach 0x schreiben, "coinbase" = Sie müssen Daten 40 mal nach 0x schreiben, "timestamp" = 0x00, "parenthash" = Sie müssen Daten 64 mal nach 0x schreiben , "extraData"= "0x00" In diesem Fall meine json-Daten wie:

{
"nonce": "0x000000142",
"difficulty": "0x4000",
"alloc": {
    "6b3fb267ff816af81091946a7e8": {
        "balance": "1000"
    },
    "70604ec24664b629abfa3604fc0140": {
        "balance": "100000"
    }
},
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parenthash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x00",
"gasLimit": "0xfffff"

}