admin.addPeer() kann nicht ausgeführt werden

Ich habe Ethereum (go-eth) in einem Ordner namens "Blockchain" installiert. In diesem "Blockchain"-Ordner habe ich 2 weitere Ordner, 'node2' und 'node3'.

Schritt 1:

Ich habe die folgende genesis.json-Datei verwendet und dieselbe json-Datei in beiden Ordnern gespeichert:

{
"nonce": "0x0000000000000042",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x0",
"gasLimit": "0x8000000",
"difficulty": "0x400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {

 }
}

speicherte die Datei mit dem Namen "genesis.json"

Schritt 2:

Zum Initialisieren des Genesis-Blocks habe ich die folgenden Befehle von 2 verschiedenen Eingabeaufforderungen ausgeführt:

Terminal 1 (Knoten2):

geth init "C:\Rahul1306\blockchain\node2\genesis.json" networkid 100

Klemme 2 (Knoten 3):

geth init "C:\Rahul1306\blockchain\node3\genesis.json" networkid 100

Der Genesis-Block wird initialisiert und mir wird Speicherplatz für beide Knoten zugewiesen.

Schritt 3

Jetzt führe ich die folgenden Befehle aus, um "chaindata" und andere Dateien in den jeweiligen Knoten zu erhalten:

Klemme 1 (Knoten2)

geth --identity "node2" --ipcdisable --rpc --rpcport "8001" --rpccorsdomain "*" --datadir "C:\Rahul1306\blockchain\node2" --port "30304" --nodiscover --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3,personal,admin" --autodag -verbosity 6 --networkid 100 --nat "any" console

Klemme 2 (Knoten 3)

geth --identity "node3" --ipcdisable --rpc --rpcport "8002" --rpccorsdomain "*" --datadir "C:\Rahul1306\blockchain\node3" --port "30305" --nodiscover --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3,personal,admin" --autodag -verbosity 6 --networkid 100 --nat "any" console

Alle erforderlichen Dateien werden in beiden Ordnern hinzugefügt

Schritt 4

Ich verwende den folgenden Befehl in beiden Terminals, um ihre Enode-Adresse abzurufen:

admin.nodeInfo

Ich erhalte folgende Adressen:

Knoten2:

enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@[::]:30305

Knoten3:

enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@[::]:30305

Schritt 5

Um diese Knoten nun mit dem privaten Netzwerk zu verbinden/anzuhängen, verwende ich den folgenden Befehl:

Hier versuche ich, node3 als Peer von node2 hinzuzufügen. Der folgende Befehl wird also auf Terminal 1 ausgeführt, dh auf dem Terminal node2. Beachten Sie, dass ich „[::]“ durch die lokale Hostadresse geändert habe, dh „127.0.0.1“.

admin.addPeer("enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@127.0.0.1:30305?di
scport=0")

Hier tritt nun das Problem auf. Ich sollte einen booleschen Wert „true“ erhalten. Beide Geth-Konsolen funktionieren und ich führe diesen Befehl aus und erhalte die folgende Fehlermeldung:

(anonymous): Line 1:15 Unexpected token ILLEGAL (and 2 more errors)

Ich bin nicht in der Lage zu verstehen, wo ich falsch gelaufen bin. Also muss ich in der Lage sein, die beiden oben genannten Knoten als Peers im privaten Blockchain-Netzwerk hinzuzufügen. Bitte helfen Sie!

Es hat sich bewährt, die Antwort als richtig zu akzeptieren, wenn sie Ihnen bei der Lösung des Problems geholfen hat. Das ist der springende Punkt bei SE. Keine der Antworten auf Ihre Fragen wird als richtig markiert. FYI, wenn Sie sich dessen nicht bewusst sind.

Antworten (1)

Schritt 2:

Verwenden Sie --datadirwährend der Initialisierung der Genesis-Datei. Und der Befehl sollte --networkidnicht seinnetworkid

Schritt 3:

Posten Sie Ihre Ausgabe für die Befehle, damit wir überprüfen können, ob Sie die private Blockchain erfolgreich mit dem benutzerdefinierten Genesis-Block gestartet haben.

Schritt 4:

Ihre Enode-Informationen sind falsch. Gemäß Ihren Befehlen in Schritt 3 sollten beide Knoten unterschiedliche Enode-URIs haben und Knoten 2 sollte Port 30304 haben. Entweder haben Sie die falsche Ausgabe gepostet oder Sie haben nur einen Knoten erstellt.

Schritt 5:

Sie benötigen den ?discport=0Enode-URI am Ende nicht.