Probleme beim Einrichten von zwei lokalen Knoten auf demselben Computer

Ich setze zwei lokale Knoten auf demselben Computer als verschiedene Benutzer (zwei verschiedene Sitzungen). Das Problem ist, dass ich sie nicht zu Gleichaltrigen machen kann.

Befehl zum Aufwecken des Hauptknotens:

geth    --identity "MainNode" \
        --rpc \
        --rpcport 8000 \
        --rpccorsdomain "*" \
        --datadir "/home/ubuntu/ethereum" \
        --port "30303" \
        --nodiscover \
        --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" \
        --rpcapi "db,eth,net,web3" \
        --autodag \
        --networkid 10165211 \
        --nat "any" console init /home/ubuntu/ethereum/CustomGenesis.json

Befehl zum Aufwecken des zweiten Knotens:

geth    --identity "My Node" \
        --rpc \
        --rpcport 8001 \
        --rpccorsdomain "*" \
        --datadir "/home/xxxx/ethereum" \
        --port "30304" \
        --nodiscover \
        --ipcdisable \
        --rpcapi "db,eth,net,web3" \
        --autodag \
        --networkid 10165211 \
        --nat "any" console init /home/xxxx/ethereum/CustomGenesis.json

Aber wenn ich die Knoten starte und den Befehl admin.nodeInfo verwende, finde ich dies im ersten Knoten:

admin.nodeInfo
{
  enode: "enode://34f8ec977f25f4a85d4d7debac748fd82851b75ca670b2ece234c9a26a493fb995fca0021b9eee6cb2ccfa98a934cdb4a8590e4a4140a1077575f94a82468129@[::]:30303?discport=0",
  id: "34f8ec977f25f4a85d4d7debac748fd82851b75ca670b2ece234c9a26a493fb995fca0021b9eee6cb2ccfa98a934cdb4a8590e4a4140a1077575f94a82468129",
  ip: "::",
  listenAddr: "[::]:30303",
  name: "Geth/v1.4.12-stable/linux/go1.5.1/MainNode",
  ports: {
    discovery: 0,
    listener: 30303
  },
  protocols: {
    eth: {
      difficulty: 17179869184,
      genesis: "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3",
      head: "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3",
      network: 10165211
    }
  }
}

Und DAS auf dem zweiten:

 admin.nodeInfo
{
  enode: "enode://34f8ec977f25f4a85d4d7debac748fd82851b75ca670b2ece234c9a26a493fb995fca0021b9eee6cb2ccfa98a934cdb4a8590e4a4140a1077575f94a82468129@[::]:30304?discport=0",
  id: "34f8ec977f25f4a85d4d7debac748fd82851b75ca670b2ece234c9a26a493fb995fca0021b9eee6cb2ccfa98a934cdb4a8590e4a4140a1077575f94a82468129",
  ip: "::",
  listenAddr: "[::]:30304",
  name: "Geth/v1.4.12-stable/linux/go1.5.1/My Node",
  ports: {
    discovery: 0,
    listener: 30304
  },
  protocols: {
    eth: {
      difficulty: 1024,
      genesis: "0x1a8c903ab9d8b7bec7ba8b15dab33a3418c90dbf8f73ec3086d34b4e17e017e6",
      head: "0x1a8c903ab9d8b7bec7ba8b15dab33a3418c90dbf8f73ec3086d34b4e17e017e6",
      network: 10165211
    }
  }
}

Selbst wenn die Datei CustomGenesis.json (vollständig) eine reine Kopie der anderen ist, können wir einige seltsame Dinge sehen:

  • die Enode-ID ist in beiden Fällen gleich. Es sollte nicht sein.
  • Der Port ändert sich (natürlich muss es so gemacht werden). Es ist in Ordnung.
  • Die Schwierigkeit ist nicht dieselbe, sie sollte es sein.
  • Der Genesis-Hash und der Head sind nicht dasselbe. Ich denke, sie sollten es sein.

Ich bin mir sicher, dass es sich nicht um ein Problem mit der Genesis.json-Datei handelt, da ich sogar versucht habe, dieselbe Datei für beide Knoten zu verwenden, aber das Gleiche, das ich hier erkläre, ist mir passiert.

Irgendeine Idee, wo der Fehler/Fehler/Bug ist?

DANKE SCHÖN.

Die Schwierigkeit ist nicht dieselbe, Knoten 2 ist nicht mit der gesamten Blockchain synchronisiert.
Verwenden Sie unterschiedliche Datenverzeichnisse? Und was meinst du mit zwei Sitzungen? Ich denke, Sie greifen von beiden Sitzungen auf dasselbe Datadir zu.
Bin ich nicht, ich habe verschiedene Datenverzeichnisse, wie Sie im Code sehen können. Zwei Sitzungen: zwei verschiedene Benutzersitzungen (xxxx und Ubuntu).

Antworten (1)

Lösung für mich:

Wenn dies passiert, kann es so aussehen, als ob einige Daten beschädigt wurden. Die Lösung ist so einfach wie das Löschen aller Datenverzeichnisse und Unterordner. Dies bedeutet, dass Sie bei Null beginnen (oder einige Daten als Konten speichern, wenn Sie sie zuvor gesichert haben), aber es hat funktioniert.

In meinem Fall:

sudo rm -r /home/ubuntu/ethereum/
sudo rm -r /home/ubuntu/.ethereum/
sudo rm -r /home/xxxx/ethereum